Part of #145.
A number of user-facing strings that include counts are built as English template literals directly in JSX and never go through t(). They aren't missing translation keys — they're outside the translation system entirely, so no dictionary can localize them. They also hardcode English plural rules (+s), which don't hold for languages with other plural categories.
Examples
src/views/Chores/SmartInsightsCard.jsx — e.g. `${overdueTasks.length} ${length === 1 ? 'task is' : 'tasks are'} overdue` (several)
src/views/Chores/ArchivedTasks.jsx — e.g. `Restore ${n} task${n > 1 ? 's' : ''}...` (several)
src/views/ChoreEdit/ChoreView.jsx — attachment / attachments
src/views/components/NotificationPickerField.jsx — const plural = absValue !== 1 ? 's' : ''
src/views/components/CalendarCard.jsx — `${count} Tasks`
- also
CustomFilterChips.jsx, UserActivities.jsx
Suggested direction
Move these into i18next keys using count-based pluralization (key_one / key_other, plus _few / _many where a language needs them — i18next resolves the right form via Intl.PluralRules). This is part of the broader i18n-coverage effort in #145; I'll handle these files as their feature areas are migrated.
Part of #145.
A number of user-facing strings that include counts are built as English template literals directly in JSX and never go through
t(). They aren't missing translation keys — they're outside the translation system entirely, so no dictionary can localize them. They also hardcode English plural rules (+s), which don't hold for languages with other plural categories.Examples
src/views/Chores/SmartInsightsCard.jsx— e.g.`${overdueTasks.length} ${length === 1 ? 'task is' : 'tasks are'} overdue`(several)src/views/Chores/ArchivedTasks.jsx— e.g.`Restore ${n} task${n > 1 ? 's' : ''}...`(several)src/views/ChoreEdit/ChoreView.jsx—attachment/attachmentssrc/views/components/NotificationPickerField.jsx—const plural = absValue !== 1 ? 's' : ''src/views/components/CalendarCard.jsx—`${count} Tasks`CustomFilterChips.jsx,UserActivities.jsxSuggested direction
Move these into i18next keys using count-based pluralization (
key_one/key_other, plus_few/_manywhere a language needs them — i18next resolves the right form viaIntl.PluralRules). This is part of the broader i18n-coverage effort in #145; I'll handle these files as their feature areas are migrated.