Skip to content

fix(i18n): localize remaining Korean UI strings outside auto catalog - #14044

Closed
zz1996zz wants to merge 2 commits into
stablyai:mainfrom
zz1996zz:feat/localize-ui-ko
Closed

zz1996zz wants to merge 2 commits into
stablyai:mainfrom
zz1996zz:feat/localize-ui-ko

Conversation

@zz1996zz

Copy link
Copy Markdown

Summary

Follow-up to #13810 (which covered the Artifacts feature only). Several other UI surfaces were still shipping in English in ko.json: the worktree jump palette filter panel, the agent dashboard popout (map filters, empty/error states, terminal card), the voice dictation feature-tip dialog, the browser guest-recovery error state, and the CLI runtime startup-failure dialog.

Fills in 56 missing keys and re-translates 35 keys that were byte-identical to their English source (i.e. never actually localized) across worktreeJumpPalette, dashboardPopout, featureTips, runtimeRpc, browser.guestRecovery, and components.native-chat.tool in src/renderer/src/i18n/locales/ko.json.

Deliberately out of scope: the auto.* namespace (~1,480 hash-keyed entries, 77.7% of the catalog per config/i18n-translation-source.md). Per that document's sparse-catalog architecture, missing/identical-to-English entries there fall back to English by design and are not a defect — filling them in bulk would conflict with the documented non-goals ("require every target locale to contain every English key," "copy English into target catalogs to simulate coverage").

Also intentionally left in English, matching existing ko.json/ja.json/zh.json convention: language self-names (English, Español), protocol/review abbreviations (SSH, WSL, PR, MR), and the Tab key name.

No English source, source code, or other locale files were touched — this is a ko.json-only change, consistent with the sparse-target-catalog architecture described in config/i18n-translation-source.md.

Screenshots

No visual change — this PR only adds translated strings to existing, already-shipped UI surfaces. No new components, layouts, or styling.

Testing

  • pnpm lint (localization-specific checks below)
  • pnpm typecheck
  • pnpm test
  • Added or updated high-quality tests that would catch regressions, or explained why tests were not needed

Notes on the above:

  • node config/scripts/verify-localization-catalog.mjs — passes; ko.json coverage 11841/12410 (the remaining 569 are the out-of-scope auto.* hash keys, unchanged by this PR).
  • pnpm run verify:localization-extraction — passes (pre-existing unrelated diffs unchanged by this PR).
  • pnpm run verify:localization-coverage (identical-to-English ratchet) — passes with 12 allowlisted candidates (the intentionally-English terms noted above).
  • pnpm run typecheck — passes cleanly.
  • pnpm run test: full suite is 49,951 tests; 2 failed, both in src/relay/agent-exec-handler.test.ts, unrelated to i18n/locales. Verified these fail identically on main with no changes applied — a local environment artifact (GIT_CONFIG_COUNT picked up from the shell session), not a regression from this change.
  • All i18n-specific test files (src/renderer/src/i18n/*.test.ts(x), 130 tests) pass, including ko-ui-semantic-mistranslations.test.ts, locale-english-regression.test.ts, and technical-literal-catalog-values.test.ts.
  • No new tests added: this PR only adds translated string values to an existing JSON catalog; correctness is verified by the localization catalog/extraction/coverage checks above, not unit tests.
  • Manually re-reviewed every new/changed string against existing ko.json terminology conventions to avoid over-localizing established loanwords or IT terms (e.g. checked pane against the catalog's existing "창" convention rather than introducing "패널"; kept sleep→절전, spawn→시작, filter→필터, orchestration→오케스트레이션, agent→에이전트 consistent with hundreds of existing entries).

AI Review Report

Reviewed the diff against config/i18n-translation-source.md before writing translations: confirmed the auto.* hash-key catalog is explicitly out of scope by architecture decision (sparse target catalogs, English fallback by design), and limited this change to the non-auto namespaces where entries were genuinely missing or shipped as unlocalized copies of the English source.

Cross-referenced sibling keys and other locale files (ja.json, zh.json) for every touched namespace to keep terminology consistent with what's already shipped, rather than inventing new phrasing per string — this caught and fixed two instances where "pane" had been translated as "패널" instead of the catalog's established "창," and confirmed brand/protocol terms (SSH, WSL, PR, MR, language self-names) are correctly left in English elsewhere in the catalog.

This PR does not touch any platform-specific code paths (no shortcuts, no file path handling, no shell invocation, no Electron APIs), so cross-platform behavior for macOS, Linux, and Windows is unaffected — it is a pure data change to one JSON locale file consumed identically on every platform.

Security Audit

No input handling, command execution, path handling, auth, secrets, dependency, or IPC changes. This PR only adds static translated string literals to an existing, version-controlled JSON locale file that is bundled at build time — no new user-controlled data paths are introduced.

Notes

No platform-specific behavior or follow-up work. This is a translation-only change limited to src/renderer/src/i18n/locales/ko.json, and does not touch the auto.* namespace addressed by future/separate work.

Translates the worktree jump palette filter panel, agent dashboard
popout, voice dictation feature tip, browser guest recovery, and CLI
runtime startup-failure copy that were still shipping in English.
Leaves the auto.* hash-key catalog untouched per the sparse-catalog
architecture, and keeps brand/protocol terms (SSH, WSL, PR, MR,
language self-names) in English to match ja/zh conventions.
@zz1996zz
zz1996zz requested a review from brennanb2025 as a code owner August 12, 2026 13:13
@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6fba8460-fdf7-4849-8895-ab8c7453cb85

📥 Commits

Reviewing files that changed from the base of the PR and between 1ef957c and ff06890.

📒 Files selected for processing (1)
  • src/renderer/src/i18n/locales/ko.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/renderer/src/i18n/locales/ko.json

📝 Walkthrough

Walkthrough

Updated Korean localization strings across tray activity, worktree palette filtering, native chat tool counts, agent dashboard controls and states, browser guest recovery, runtime CLI startup failures, and voice dictation tips.

Mergeability Score: ⚪ Minimal · up to ff068

This PR only updates Korean translations in an existing locale catalog, with localization checks passing and no actionable merge-blocking risk remaining after normal review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: localizing remaining Korean UI strings outside the auto catalog.
Description check ✅ Passed The description clearly explains the scope, rationale, testing, and exclusions, but it omits the required Linked Issue and several template sections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b96dc2ec-fe4e-4fa8-a524-cb15f2bcabcf

📥 Commits

Reviewing files that changed from the base of the PR and between 09ec516 and 1ef957c.

📒 Files selected for processing (1)
  • src/renderer/src/i18n/locales/ko.json

Comment thread src/renderer/src/i18n/locales/ko.json Resolved
Comment thread src/renderer/src/i18n/locales/ko.json Resolved
@zz1996zz

Copy link
Copy Markdown
Author

Friendly ping — this one is ready whenever you have time.

Both CodeRabbit findings are resolved (one fixed in ff06890d, one withdrawn after clarification), the branch is mergeable with no conflicts, and the change is confined to src/renderer/src/i18n/locales/ko.json.

Note on ordering: this PR is a follow-up to #13810, so merging that one first avoids a conflict here. I'll rebase this branch right after #13810 lands.

@brennanb2025 no rush — just flagging it's unblocked on my side.

@OrcaWin

OrcaWin commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator

Thanks @zz1996zz! Most of this PR already landed on main through later catalog fills. The two remaining strings (runtimeRpc.startupFailure.continueButton / .title) are now included in #34155 with you credited as co-author.

OrcaWin added a commit to RyuWoong/orca that referenced this pull request Oct 27, 2026
…ings

Carried over from stablyai#14044.

Co-authored-by: JeongSu <zz1996zz@naver.com>
OrcaWin added a commit that referenced this pull request Oct 28, 2026
* 한국어 비활성 상태 라벨을 문맥에 맞게 수정

사용량 통계의 비활성 상태는 비활성으로, 터미널 색상 대비의 Off 옵션은 끔으로 수정했습니다. 활성 상태의 기존 활성화됨 표현은 유지했습니다.

번역 재생성 시에도 두 표현이 유지되도록 한국어 키별 보정 설정에 반영했습니다.

* fix(i18n): pair Korean usage badge enabled label with 비활성

* fix(i18n): translate remaining Korean runtime RPC startup failure strings

Carried over from #14044.

Co-authored-by: JeongSu <zz1996zz@naver.com>

---------

Co-authored-by: Willy <willy@Willy-MacBookPro.local>
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
Co-authored-by: JeongSu <zz1996zz@naver.com>
@OrcaWin

OrcaWin commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

Thanks @zz1996zz — the remaining Korean strings from this PR landed via #34155 with co-author credit, and the rest is already on main. Closing as superseded.

@OrcaWin OrcaWin closed this Oct 28, 2026
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.

5 participants