Merge pull request #81 from GilgusMaximus/master
Localization of 'Published x y ago' strings
This commit is contained in:
commit
4392f96b42
|
@ -18,3 +18,4 @@ dist
|
||||||
coverage
|
coverage
|
||||||
__coverage__
|
__coverage__
|
||||||
csak-timelog.json
|
csak-timelog.json
|
||||||
|
.idea/
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import FtIconButton from '../ft-icon-button/ft-icon-button.vue'
|
import FtIconButton from '../ft-icon-button/ft-icon-button.vue'
|
||||||
|
import { mapActions } from 'vuex'
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: 'FtListVideo',
|
name: 'FtListVideo',
|
||||||
|
@ -213,7 +214,20 @@ export default Vue.extend({
|
||||||
this.viewCount = this.data.viewCount
|
this.viewCount = this.data.viewCount
|
||||||
|
|
||||||
if (typeof (this.data.publishedText) !== 'undefined') {
|
if (typeof (this.data.publishedText) !== 'undefined') {
|
||||||
this.uploadedTime = this.data.publishedText
|
// produces a string according to the template in the locales string
|
||||||
|
this.toLocalePublicationString({
|
||||||
|
publishText: this.data.publishedText,
|
||||||
|
templateString: this.$t('Video.Publicationtemplate'),
|
||||||
|
timeStrings: this.$t('Video.Published'),
|
||||||
|
liveStreamString: this.$t('Video.Watching'),
|
||||||
|
upcomingString: this.$t('Video.Published.Upcoming'),
|
||||||
|
isLive: this.data.live,
|
||||||
|
isUpcoming: this.data.isUpcoming
|
||||||
|
}).then((data) => {
|
||||||
|
this.uploadedTime = data
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof (this.data.viewCount) !== 'undefined' && this.data.viewCount !== null) {
|
if (typeof (this.data.viewCount) !== 'undefined' && this.data.viewCount !== null) {
|
||||||
|
@ -252,6 +266,19 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof (this.data.uploaded_at) !== 'undefined') {
|
if (typeof (this.data.uploaded_at) !== 'undefined') {
|
||||||
|
this.toLocalePublicationString({
|
||||||
|
publishText: this.data.uploaded_at,
|
||||||
|
templateString: this.$t('Video.Publicationtemplate'),
|
||||||
|
timeStrings: this.$t('Video.Published'),
|
||||||
|
liveStreamString: this.$t('Video.Watching'),
|
||||||
|
upcomingString: this.$t('Video.Published.Upcoming'),
|
||||||
|
isLive: this.data.live,
|
||||||
|
isUpcoming: false
|
||||||
|
}).then((data) => {
|
||||||
|
this.uploadedTime = data
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
this.uploadedTime = this.data.uploaded_at
|
this.uploadedTime = this.data.uploaded_at
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,6 +292,9 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
this.isLive = this.data.live
|
this.isLive = this.data.live
|
||||||
}
|
},
|
||||||
|
...mapActions([
|
||||||
|
'toLocalePublicationString'
|
||||||
|
])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -166,6 +166,70 @@ const actions = {
|
||||||
return vttString
|
return vttString
|
||||||
},
|
},
|
||||||
|
|
||||||
|
toLocalePublicationString ({ dispatch }, payload) {
|
||||||
|
if (payload.isLive) {
|
||||||
|
return '0' + payload.liveStreamString
|
||||||
|
} else if (payload.isUpcoming || payload.publishText === null) {
|
||||||
|
// the check for null is currently just an inferring of knowledge, because there is no other possibility left
|
||||||
|
return payload.upcomingString
|
||||||
|
}
|
||||||
|
const strings = payload.publishText.split(' ')
|
||||||
|
const singular = (strings[0] === '1')
|
||||||
|
let publicationString = payload.templateString.replace('$', strings[0])
|
||||||
|
switch (strings[1].substring(0, 2)) {
|
||||||
|
case 'se':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Second)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Seconds)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'mi':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Minute)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Minutes)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'ho':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Hour)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Hours)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'da':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Day)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Days)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'we':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Week)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Weeks)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'mo':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Month)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Months)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 'ye':
|
||||||
|
if (singular) {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Year)
|
||||||
|
} else {
|
||||||
|
publicationString = publicationString.replace('%', payload.timeStrings.Years)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return publicationString
|
||||||
|
},
|
||||||
|
|
||||||
showToast (_, payload) {
|
showToast (_, payload) {
|
||||||
FtToastEvents.$emit('toast.open', payload.message, payload.action, payload.time)
|
FtToastEvents.$emit('toast.open', payload.message, payload.action, payload.time)
|
||||||
}
|
}
|
||||||
|
|
|
@ -305,18 +305,23 @@ Video:
|
||||||
Oct: Okt
|
Oct: Okt
|
||||||
Nov: Nov
|
Nov: Nov
|
||||||
Dec: Dez
|
Dec: Dez
|
||||||
|
Second: Sekunde
|
||||||
|
Seconds: Sekunden
|
||||||
Hour: Stunde
|
Hour: Stunde
|
||||||
Hours: Stunden
|
Hours: Stunden
|
||||||
Day: Tag
|
Day: Tag
|
||||||
Days: Tage
|
Days: Tagen
|
||||||
Week: Woche
|
Week: Woche
|
||||||
Weeks: Wochen
|
Weeks: Wochen
|
||||||
Month: Monat
|
Month: Monat
|
||||||
Months: Monate
|
Months: Monaten
|
||||||
Year: Jahr
|
Year: Jahr
|
||||||
Years: Jahre
|
Years: Jahren
|
||||||
Ago: Vor
|
Ago: Vor
|
||||||
|
Upcoming: Premiere bald
|
||||||
Published on: Veröffentlicht am
|
Published on: Veröffentlicht am
|
||||||
|
Publicationtemplate: vor $ % veröffentlicht
|
||||||
|
|
||||||
#& Videos
|
#& Videos
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
|
|
|
@ -297,6 +297,8 @@ Video:
|
||||||
Oct: Oct
|
Oct: Oct
|
||||||
Nov: Nov
|
Nov: Nov
|
||||||
Dec: Dec
|
Dec: Dec
|
||||||
|
Second: Second
|
||||||
|
Seconds: Seconds
|
||||||
Hour: Hour
|
Hour: Hour
|
||||||
Hours: Hours
|
Hours: Hours
|
||||||
Day: Day
|
Day: Day
|
||||||
|
@ -308,7 +310,10 @@ Video:
|
||||||
Year: Year
|
Year: Year
|
||||||
Years: Years
|
Years: Years
|
||||||
Ago: Ago
|
Ago: Ago
|
||||||
|
Upcoming: Premieres soon
|
||||||
Published on: Published on
|
Published on: Published on
|
||||||
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
Publicationtemplate: $ % ago
|
||||||
#& Videos
|
#& Videos
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
|
|
|
@ -302,6 +302,10 @@ Video:
|
||||||
Oct: Out
|
Oct: Out
|
||||||
Nov: Nov
|
Nov: Nov
|
||||||
Dec: Dez
|
Dec: Dez
|
||||||
|
# !
|
||||||
|
Second: Second
|
||||||
|
# !
|
||||||
|
Seconds: Seconds
|
||||||
Hour: Hora
|
Hour: Hora
|
||||||
Hours: Horas
|
Hours: Horas
|
||||||
Day: Dia
|
Day: Dia
|
||||||
|
@ -313,7 +317,12 @@ Video:
|
||||||
Year: Ano
|
Year: Ano
|
||||||
Years: Anos
|
Years: Anos
|
||||||
Ago: Há
|
Ago: Há
|
||||||
|
# !
|
||||||
|
Upcoming: Premieres soon
|
||||||
Published on: Publicado em
|
Published on: Publicado em
|
||||||
|
# !
|
||||||
|
# $ is replaced with the number and % with the unit (days, hours, minutes...)
|
||||||
|
Publicationtemplate: $ % ago
|
||||||
#& Videos
|
#& Videos
|
||||||
Videos:
|
Videos:
|
||||||
#& Sort By
|
#& Sort By
|
||||||
|
|
Loading…
Reference in New Issue