Skip to content

feat: add Vietnamese locale across app, console, and stats - #307

Merged
quickbeard merged 2 commits into
mainfrom
feat/vietnamese-locale
Aug 23, 2026
Merged

quickbeard merged 2 commits into
mainfrom
feat/vietnamese-locale

Conversation

@quickbeard

Copy link
Copy Markdown
Owner

Summary

Adds Vietnamese (vi) as a third locale alongside English and Spanish, translated from English (~2,250 strings).

New dictionaries (fork-only files):

  • packages/app/src/i18n/vi.ts — 1,126 keys (desktop/web app)
  • packages/console/app/src/i18n/vi.ts — 716 keys
  • packages/stats/app/src/i18n/vi.ts — 228 keys
  • packages/ui/src/i18n/vi.ts — 172 keys
  • packages/desktop/src/renderer/i18n/vi.ts — 21 keys

Wiring: every locale registry now includes vi — app language context/entry, desktop renderer i18n, console i18n/index.ts + lib/language.ts (shared by stats), and the enterprise app. "Tiếng Việt" shows in language pickers, vi browser/OS languages are auto-detected, and console docs routing maps Vietnamese to the published /docs/vi docs locale.

Terminology (captured in .codev/glossary/vi.md): UI chrome translated; common dev terms (session, prompt, token, commit, branch, agent, model…) kept in English per Vietnamese dev-tool convention; user addressed as "bạn"; Vietnamese sentence casing. ~200 strings are deliberately identical to English (product names, tech labels, placeholder-only strings).

Tooling: vi/"Vietnamese" registered in script/translate-app.ts. Also fixes a latent bug: glossaryFile still pointed at .opencode/glossary/, which no longer exists after the config-dir rename, so glossaries were silently never loaded — now reads .codev/glossary/ (test expectations updated).

Bookkeeping: DIVERGENCES.md locale rows updated + a new Vietnamese row; CHANGELOG.md Unreleased entry; e2e locale-projection spec now also asserts the vi projection ("Đã khám phá").

Verification

  • bun script/translate-app.ts vi --check — zero drift (app, ui, desktop)
  • Custom parity check across all five dictionaries — identical key order and {{placeholder}} sets vs English
  • bun typecheck clean in app, ui, desktop, console/app, stats/app, enterprise
  • 697 app unit tests pass (bun run test:unit); 12 translate-script tests pass
  • Vietnamese docs confirmed live at the fork docs site before wiring /docs/vi

🤖 Generated with Claude Code

quickbeard and others added 2 commits August 23, 2026 19:35
Adds vi as a third locale alongside en and es, translated from English:

- New dictionaries: packages/app (1,126 keys), packages/console (716),
  packages/stats (228), packages/ui (172), packages/desktop renderer (21)
- Locale registries extended with vi: app language context and entry,
  desktop renderer i18n, console i18n + language lib (shared by stats),
  enterprise app; "Tiếng Việt" label and vi accept-language detection
- Console docs routing maps vi to the published /docs/vi locale
- Terminology captured in .codev/glossary/vi.md: UI chrome translated,
  common dev terms kept in English, user addressed as "bạn"
- translate-app script: vi registered; glossaryFile repointed from the
  stale .opencode/glossary/ to .codev/glossary/ so glossaries load
- e2e locale-projection spec now also asserts the vi projection
- DIVERGENCES.md rows updated + new Vietnamese row; CHANGELOG entry

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@quickbeard
quickbeard merged commit 7af5329 into main Aug 23, 2026
0 of 5 checks passed
@quickbeard
quickbeard deleted the feat/vietnamese-locale branch August 23, 2026 13:07
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.

1 participant