Skip to content

fix(i18n): sync ko.json with en.json and add a locale key parity test - #419

Open
opastorello wants to merge 2 commits into
ArnasDon:mainfrom
opastorello:fix/i18n-ko-parity
Open

fix(i18n): sync ko.json with en.json and add a locale key parity test#419
opastorello wants to merge 2 commits into
ArnasDon:mainfrom
opastorello:fix/i18n-ko-parity

Conversation

@opastorello

Copy link
Copy Markdown
Contributor

Closes #418.

Two keys landed in en.json without reaching ko.jsonSettings.sections.quick-replies (8bbbe0a) and Contacts.detailView.tabs.tags (6a8744c). src/i18n/request.ts only falls back per-file, not per-key, so Korean users see the raw keypaths in the settings nav and on the contact tags tab.

First commit adds the two labels: 빠른 답장 and 태그, matching the terms ko.json already uses for these features (Inbox.composer.quickReplies* uses 빠른 답장 six times, and 태그 is what every other tags label uses — Inbox.sidebar.tags, Contacts.page.tableColumns.tags, etc.). Inbox.composer.quickRepliesEmpty literally tells the user 설정 → 빠른 답장에서 추가하세요, so the nav label has to match that wording.

Second commit adds src/i18n/messages.test.ts so this stops recurring. On current main it fails naming exactly the two keys above:

AssertionError: ko.json is missing these keys: expected [ …(2) ] to deeply equal []
+   "Contacts.detailView.tabs.tags",
+   "Settings.sections.quick-replies",

It also checks the reverse direction — keys present in a translation but absent from en.json — which would have flagged the root-level roles workaround blocks that #417 makes unnecessary. Runs inside npm test, so CI picks it up with no workflow change.

Overlap note: the review thread on #417 asked for the same quick-replies line; taking it here instead so the parity test lands green on its own. The two PRs touch different parts of ko.json, so they don't conflict and merge in either order.

Test plan

  • npm run typecheck clean
  • npm run lint — 0 errors, no new warnings
  • npm test — both parity tests pass; suite otherwise unchanged from main (the 3 currency.test.ts failures on local Node 24 are pre-existing ICU differences; CI runs Node 20 where they pass)
  • Rendering verified with next-intl directly: ko Settings.sections.quick-replies → 빠른 답장, Contacts.detailView.tabs.tags → 태그
  • Reverted the two keys locally and confirmed the test fails listing exactly them

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.

ko.json drifts out of sync with en.json — no CI guard on locale key parity

1 participant