Update backup schedule description translations #4017

This commit is contained in:
advplyr 2025-02-21 18:18:16 -06:00
parent 799879d67d
commit 19a65dba98
4 changed files with 25 additions and 10 deletions

View File

@ -122,7 +122,7 @@ export default {
},
scheduleDescription() {
if (!this.cronExpression) return ''
const parsed = this.$parseCronExpression(this.cronExpression)
const parsed = this.$parseCronExpression(this.cronExpression, this)
return parsed ? parsed.description : `${this.$strings.LabelCustomCronExpression} ${this.cronExpression}`
},
nextBackupDate() {

View File

@ -107,6 +107,19 @@ Vue.prototype.$formatNumber = (num) => {
return Intl.NumberFormat(Vue.prototype.$languageCodes.current).format(num)
}
/**
* Get the days of the week for the current language
* Starts with Sunday
* @returns {string[]}
*/
Vue.prototype.$getDaysOfWeek = () => {
const days = []
for (let i = 0; i < 7; i++) {
days.push(new Date(2025, 0, 5 + i).toLocaleString(Vue.prototype.$languageCodes.current, { weekday: 'long' }))
}
return days
}
const translations = {
[defaultCode]: enUsStrings
}
@ -148,6 +161,7 @@ async function loadi18n(code) {
Vue.prototype.$setDateFnsLocale(languageCodeMap[code].dateFnsLocale)
this?.$eventBus?.$emit('change-lang', code)
return true
}

View File

@ -93,7 +93,7 @@ Vue.prototype.$elapsedPrettyExtended = (seconds, useDays = true, showSeconds = t
return strs.join(' ')
}
Vue.prototype.$parseCronExpression = (expression) => {
Vue.prototype.$parseCronExpression = (expression, context) => {
if (!expression) return null
const pieces = expression.split(' ')
if (pieces.length !== 5) {
@ -102,31 +102,31 @@ Vue.prototype.$parseCronExpression = (expression) => {
const commonPatterns = [
{
text: 'Every 12 hours',
text: context.$strings.LabelIntervalEvery12Hours,
value: '0 */12 * * *'
},
{
text: 'Every 6 hours',
text: context.$strings.LabelIntervalEvery6Hours,
value: '0 */6 * * *'
},
{
text: 'Every 2 hours',
text: context.$strings.LabelIntervalEvery2Hours,
value: '0 */2 * * *'
},
{
text: 'Every hour',
text: context.$strings.LabelIntervalEveryHour,
value: '0 * * * *'
},
{
text: 'Every 30 minutes',
text: context.$strings.LabelIntervalEvery30Minutes,
value: '*/30 * * * *'
},
{
text: 'Every 15 minutes',
text: context.$strings.LabelIntervalEvery15Minutes,
value: '*/15 * * * *'
},
{
text: 'Every minute',
text: context.$strings.LabelIntervalEveryMinute,
value: '* * * * *'
}
]
@ -147,7 +147,7 @@ Vue.prototype.$parseCronExpression = (expression) => {
return null
}
const weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
const weekdays = context.$getDaysOfWeek()
var weekdayText = 'day'
if (pieces[4] !== '*')
weekdayText = pieces[4]

View File

@ -393,6 +393,7 @@
"LabelIntervalEvery6Hours": "Every 6 hours",
"LabelIntervalEveryDay": "Every day",
"LabelIntervalEveryHour": "Every hour",
"LabelIntervalEveryMinute": "Every minute",
"LabelInvert": "Invert",
"LabelItem": "Item",
"LabelJumpBackwardAmount": "Jump backward amount",