3.6 KiB
3.6 KiB
Localization Matrix
Canonical tracking document for every locale CodeWhale ships, is actively building, is planning, or has explicitly deferred.
Scope note (2026-07-12): this matrix tracks the website/README surface. The TUI ships its own locale packs under
crates/tui/locales/(en, es-419, ja, ko, pt-BR, vi, zh-Hans complete; zh-Hant intentionally partial per #4057), guarded by raw key-parity tests incrates/tui/src/localization.rs. Keep the two surfaces distinct when updating status here.
Last updated: 2026-07-12.
Source-of-truth README: README.md (English, post-#3087).
Status legend
| Status | Meaning |
|---|---|
| shipped | Live on codewhale.net and/or published as a standalone README |
| partial | Shipped but missing sections; actively being filled in |
| planned | Explicitly prioritized for the next wave |
| deferred | Acknowledged as wanted but not yet scheduled; needs layout QA, bridge support, or community champion |
Website locales
| Locale | Code | Status | Notes |
|---|---|---|---|
| English | en |
shipped | Source text. Every page has an EN route. |
| Simplified Chinese | zh |
shipped | Full parity with EN on all first-class pages. |
| Japanese | ja |
planned | README exists (README.ja-JP.md); website route not yet live. Depends on locale-switcher supporting >2 languages and dictionary scaffolding (#3091). |
| Vietnamese | vi |
planned | README exists (README.vi.md); same dependencies as Japanese (#3091). |
| Korean | ko |
planned | README exists (README.ko-KR.md); #3093 next-wave locale. |
| Russian | ru |
planned | Next-priority locale. No README yet; explicitly scoped for #3092. Latin+Cyrillic layout is established in the CSS font stack; needs dictionary + route scaffolding. |
| Spanish | es |
deferred | #3093 next-wave. |
| Brazilian Portuguese | pt-BR |
deferred | #3093 next-wave. |
| Arabic | ar |
deferred | RTL candidate. Deferred until layout/typography QA exists (bidirectional text, mirrored chrome, number formatting). |
README locales
| Locale | File | Status | Parity check |
|---|---|---|---|
| English | README.md |
shipped | Canonical source |
| Simplified Chinese | README.zh-CN.md |
shipped | Manual review per release |
| Japanese | README.ja-JP.md |
shipped | Manual review per release |
| Vietnamese | README.vi.md |
shipped | Manual review per release |
| Korean | README.ko-KR.md |
shipped | Manual review per release |
| Russian | (not yet created) | planned | #3092 |
Drift checks
| Check | Tool | Status |
|---|---|---|
| README locale links symmetric | scripts/check-readme-locales.sh |
Planned |
| Website dictionaries cover all shipped locales | npm run check:locales (vitest) |
Planned |
| Accept-Language routes to all shipped locales | Middleware test | Planned |
| Locale selector lists all shipped locales | Component test | Planned |
How to add a locale
- Add the locale code to
localesarray inweb/lib/i18n/config.ts. - Add label to
LOCALE_LABELSinweb/components/locale-switcher.tsx. - Scaffold translation dictionaries under
web/lib/i18n/dictionaries/<code>/. - Add a locale route segment — Next.js
[locale]will pick it up automatically once thelocalesarray includes it. - Update this matrix.
Related issues
- #3091 — Website parity with JA + VI README locales
- #3092 — Russian README + website localization
- #3093 — Korean, Spanish, Brazilian Portuguese next-wave locales
- #3087 — Post-rebrand README source text refresh