Skip to content

User-facing count/plural strings are hardcoded in English and bypass i18next #146

Description

@everysingletear

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.jsxattachment / attachments
  • src/views/components/NotificationPickerField.jsxconst 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions