Skip to content

feat(cli): add Japanese and Korean - #34

Merged
akf66 merged 1 commit into
mainfrom
akf66/i18n-ja-ko
Aug 26, 2026
Merged

feat(cli): add Japanese and Korean#34
akf66 merged 1 commit into
mainfrom
akf66/i18n-ja-ko

Conversation

@akf66

@akf66 akf66 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Four languages: en, zh, ja, ko. From the locale, or --lang / ORCACODE_LANG.

orcacode-review — OrcaCode Review インストーラー(OrcaRouter による AI PR レビュー)
使い方

orcacode-review — OrcaCode Review 설치 도구 (OrcaRouter 기반 AI PR 리뷰)
사용법

Adding a language was more places than it looked

Now three: append to LANGUAGES, add locale prefixes to LOCALE_PREFIX, add the table.

The language picker was a hardcoded two-element array — a new table would have shipped with no way to select it. It is generated from LANGUAGES now, and every table must carry a lang.<code> label for every language so each can name the others. A test enforces that; without it the picker renders a blank row.

Traditional Chinese → English, deliberately

zh-TW and zh-HK resolve to English, not Simplified. The vocabulary diverges enough that serving zh reads worse than not translating. Pinned by a test so it doesn't get "fixed" later.

The tests only checked Chinese

That's the part worth flagging. The parity suite compared zh against en and nothing else, so this change could have shipped half-translated with a green suite. It now loops every non-English table:

  • missing keys
  • translation-only keys
  • function-vs-string mismatches
  • differing argument counts (which silently drop a branch name or a count)

The literals check runs per language too — flags, gh commands, workflow input names. Those are never translated, because the reader still has to type them.

356 new strings. 411 tests passing.

1.4.0 — merging publishes it.

Four languages now: en, zh, ja, ko. Picked from the locale, overridable with
--lang or ORCACODE_LANG.

Adding a language used to be more places than it looked. It is now three:

  - append the code to LANGUAGES
  - add its locale prefixes to LOCALE_PREFIX
  - add the table

The language picker was a hardcoded two-element array, so a new table would
have shipped with no way to select it. It is generated from LANGUAGES now,
and every table must carry a `lang.<code>` label for every language so each
one can name the others — a test enforces that.

Traditional Chinese locales (zh-TW, zh-HK) resolve to English on purpose.
The vocabulary diverges enough from Simplified that serving zh reads worse
than not translating, and a test pins that so nobody "fixes" it later.

The parity tests only compared Chinese against English, so this change could
have shipped half-translated with a green suite. They now run over every
non-English table: missing keys, extra keys, function/string mismatches, and
differing argument counts. The literals check — flags, gh commands, workflow
input names, which must never be translated because the reader still has to
type them — also runs per language now.

411 tests.
@akf66
akf66 merged commit f963063 into main Aug 26, 2026
2 checks passed
@akf66
akf66 deleted the akf66/i18n-ja-ko branch August 26, 2026 08:31
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