feat(i18n): make overdue reminder translations more explicit (#761)

This commit is contained in:
kolaente
2025-05-13 13:12:56 +02:00
committed by GitHub
parent eae0889437
commit 4d8c17f577
2 changed files with 22 additions and 26 deletions

View File

@@ -148,18 +148,16 @@
}
},
"time": {
"year": "year",
"years": "years",
"week": "week",
"weeks": "weeks",
"day": "day",
"days": "days",
"hour": "hour",
"hours": "hours",
"minute": "minute",
"minutes": "minutes",
"one_unit_format": "one %[1]s",
"multiple_units_format": "%[1]d %[2]s",
"list_last_separator": " and "
"one_year": "one year",
"one_week": "one week",
"one_day": "one day",
"one_hour": "one hour",
"one_minute": "one minute",
"many_years": "%[1]d years",
"many_weeks": "%[1]d weeks",
"many_days": "%[1]d days",
"many_hours": "%[1]d hours",
"many_minutes": "%[1]d minutes",
"list_last_separator": "and"
}
}

View File

@@ -37,15 +37,15 @@ func HumanizeDuration(duration time.Duration, lang string) string {
minutes := int64(math.Mod(duration.Minutes(), 60))
chunks := []struct {
singularKey string
pluralKey string
amount int64
pluralFormatKey string
oneKey string
amount int64
}{
{"time.year", "time.years", years},
{"time.week", "time.weeks", weeks},
{"time.day", "time.days", days},
{"time.hour", "time.hours", hours},
{"time.minute", "time.minutes", minutes},
{"time.many_years", "time.one_year", years},
{"time.many_weeks", "time.one_week", weeks},
{"time.many_days", "time.one_day", days},
{"time.many_hours", "time.one_hour", hours},
{"time.many_minutes", "time.one_minute", minutes},
}
parts := []string{}
@@ -55,16 +55,14 @@ func HumanizeDuration(duration time.Duration, lang string) string {
case 0:
continue
case 1:
parts = append(parts, fmt.Sprintf(i18n.T(lang, "time.one_unit_format"), i18n.T(lang, chunk.singularKey)))
parts = append(parts, i18n.T(lang, chunk.oneKey))
default:
parts = append(parts, fmt.Sprintf(i18n.T(lang, "time.multiple_units_format"), chunk.amount, i18n.T(lang, chunk.pluralKey)))
// i18n.T(lang, "time.multiple_units_format",
// strconv.FormatInt(chunk.amount, 10), i18n.T(lang, chunk.pluralKey))
parts = append(parts, fmt.Sprintf(i18n.T(lang, chunk.pluralFormatKey), chunk.amount))
}
}
if len(parts) > 1 {
return strings.Join(parts[:len(parts)-1], ", ") + i18n.T(lang, "time.list_last_separator") + parts[len(parts)-1]
return strings.Join(parts[:len(parts)-1], ", ") + " " + i18n.T(lang, "time.list_last_separator") + " " + parts[len(parts)-1]
}
return strings.Join(parts, ", ")