Skip to content

i18n / Localisation

No i18n is implemented.

  • No i18next / react-intl / lingui in package.json
  • No locales/ or i18n/ directory
  • All strings in src/pages/*.tsx and src/components/*.tsx are hardcoded English

Why this is probably OK

This is an internal admin tool for Someli staff, who are presumed to be English-speaking (or at minimum, English-capable). The cost of i18n (translation + ongoing maintenance + bundle size) exceeds the benefit for this audience.

When to revisit

  • If Someli's internal staff grows internationally and English is not a workable shared language for some staff
  • If the admin tool ever exposes UI to non-staff (unlikely)

If i18n is added later

Path: react-i18next is the standard React choice. Setup is ~3 hours:

  1. npm i react-i18next i18next i18next-browser-languagedetector
  2. src/i18n/config.ts with resources per locale
  3. Wrap App in <I18nextProvider>
  4. Replace hardcoded strings with t('key') calls

Pluralisation, date / number / currency formatting can use Intl.NumberFormat / Intl.DateTimeFormat natively (already locale-aware in modern browsers).

RTL

No RTL support. The shadcn / Radix primitives generally accept dir="rtl" and Tailwind has logical properties (ms-, me-, ps-, pe-) but the project uses physical ones (ml-, mr-, pl-, pr-). An RTL pass would require swapping these.

For an English-only admin tool, no action needed.