LocalizationContext calls moment.locale(language) for whatever language is active (src/contexts/LocalizationContext.jsx), but the app only imports one moment locale:
// src/i18n/config.js
import 'moment/locale/ja'
moment silently falls back to the built-in en locale for any language whose locale bundle wasn't imported. So with the UI translated, dates still render in English for de, es, fr, nl, pt, zh-CN, ar — only en and ja get localized dates.
Steps to reproduce
- Switch the app language to German (or any language except
en/ja).
- Open any view with a date (chore due date, activity feed).
- Month/weekday names and relative times ("2 hours ago") render in English.
Expected
Dates follow the selected language.
Possible fixes (would appreciate a maintainer's call before a PR)
- Static: import every shipped
moment/locale/<lng> in config.js. Simple, but pulls all locale data into the main bundle.
- Dynamic: import only the active language's locale when it changes (
await import(\moment/locale/${lng}`)`), keeping the bundle lean.
Happy to open a PR — which approach do you prefer?
LocalizationContextcallsmoment.locale(language)for whatever language is active (src/contexts/LocalizationContext.jsx), but the app only imports one moment locale:moment silently falls back to the built-in
enlocale for any language whose locale bundle wasn't imported. So with the UI translated, dates still render in English for de, es, fr, nl, pt, zh-CN, ar — onlyenandjaget localized dates.Steps to reproduce
en/ja).Expected
Dates follow the selected language.
Possible fixes (would appreciate a maintainer's call before a PR)
moment/locale/<lng>inconfig.js. Simple, but pulls all locale data into the main bundle.await import(\moment/locale/${lng}`)`), keeping the bundle lean.Happy to open a PR — which approach do you prefer?