Skip to content

feat(i18n): define localization matrix with locale registry and drift checks (#3090)#3763

Open
idling11 wants to merge 1 commit into
Hmbown:mainfrom
idling11:fix/issue-3090-localization-matrix
Open

feat(i18n): define localization matrix with locale registry and drift checks (#3090)#3763
idling11 wants to merge 1 commit into
Hmbown:mainfrom
idling11:fix/issue-3090-localization-matrix

Conversation

@idling11

Copy link
Copy Markdown
Contributor
  • docs/LOCALIZATION.md: canonical tracking document for shipped, planned, and deferred locales across website and README surfaces. Includes Russian as next-priority and Arabic as RTL deferred.
  • web/lib/i18n/config.ts: expand locale config with ALL_LOCALES registry (9 tracked locales, 2 shipped) and LocaleStatus types. Active locales array now derived from shipped status, enabling

    2 locale support without hard-coded arrays.

  • web/components/locale-switcher.tsx: rewrite from hard-coded en↔zh toggle to support any number of shipped locales (2 = toggle, 3+ = dropdown). Reads from ALL_LOCALES.
  • web/middleware.ts: Accept-Language detection now matches against all shipped locales instead of hard-coding Chinese-only detection.
  • scripts/check-readme-locales.sh: symmetry check verifying main README links all locale READMEs and no orphaned locale files exist.

Close #3090.

Testing

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features
  • cargo test --workspace --all-features

Checklist

  • Updated docs or comments as needed
  • Added or updated tests where relevant
  • Verified TUI behavior manually if UI changes
  • Harvested/co-authored credit uses a GitHub numeric noreply address

… checks (Hmbown#3090)

- docs/LOCALIZATION.md: canonical tracking document for shipped,
  planned, and deferred locales across website and README surfaces.
  Includes Russian as next-priority and Arabic as RTL deferred.
- web/lib/i18n/config.ts: expand locale config with ALL_LOCALES
  registry (9 tracked locales, 2 shipped) and LocaleStatus types.
  Active `locales` array now derived from shipped status, enabling
  >2 locale support without hard-coded arrays.
- web/components/locale-switcher.tsx: rewrite from hard-coded en↔zh
  toggle to support any number of shipped locales (2 = toggle,
  3+ = dropdown). Reads from ALL_LOCALES.
- web/middleware.ts: Accept-Language detection now matches against all
  shipped locales instead of hard-coding Chinese-only detection.
- scripts/check-readme-locales.sh: symmetry check verifying main
  README links all locale READMEs and no orphaned locale files exist.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v0.8.59: Define README + website localization matrix, source text, and drift checks

1 participant