Skip to content

chore(i18n): translate 259 new keys to es/fr/ja/ko/zh - #28486

Merged
AmethystLiang merged 1 commit into
mainfrom
translation-update
Oct 14, 2026
Merged

AmethystLiang merged 1 commit into
mainfrom
translation-update

Conversation

@AmethystLiang

@AmethystLiang AmethystLiang commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 0 0 0 0
Prod 7 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​2053 $\color{#cf222e}{\Huge{\mathbf{−}}}$​147 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​1906

ELI5

The app speaks English, Spanish, French, Japanese, Korean and Simplified Chinese. When developers add new English text, the other languages lag behind. This PR catches those five languages up with everything added since the last translation pass.

What Changed

Before: PRs merged since the last translation scan (2026-10-07, de4ee59cba) added new English UI strings, and the es/fr/ja/ko/zh catalogs were missing them — so those screens fell back to English. A handful of already-translated strings were also stale (the English they were keyed to had changed) or mistranslated.

After:

  • Added 291 new keys to the target catalogs: es +291, fr +290, ja +291, ko +267, zh +279 (1,418 new key entries), so all five locales now cover every referenced key except the intentionally-omitted ones below. This includes the Windows administrator-mode strings (settings.terminal.windows.*).
  • Fixed 20 stale/mistranslated existing values, e.g. settings.chat.description ("get their names" → "behave") in all five; es TerminalRemoteRuntimeReconnectBanner.retryingBody still in English; es/fr/ja ZcodePlanAccountsSection.usingCliHelp still naming the removed ~/.zcode/cli/config.json path; and 9 zh strings using 代理 for the Agent concept, which the project standardizes as 智能体.
  • Left 14 keys intentionally untranslated as English fallback by design: the 11 provider credit-balance keys pinned by provider-credit-balance-locales.test.ts and the 3 Chat UI settings keys pinned by native-chat-locales.test.ts.

Mechanism: the missing-key delta was computed by flattening en.json at de4ee59cba vs current main and subtracting each target catalog. Values were produced per locale, then applied through the repo's repairTranslatedValue pipeline (brand-mistranslation fixes, CJK spacing, phrase fixes) with placeholder parity enforced. No source or English copy changed.

Why

The catalogs are sparse by design (missing keys fall back to English), so untranslated strings are not broken — but they are invisible regressions in coverage that only accumulate. This is the recurring "scan after a batch of merged PRs" pass. Doing it as a translation-only change keeps it independent of the feature PRs that introduced the copy, so it never blocks them and is cheap to review. The alternative — translating inline in each feature PR — would couple localization to every feature and violate the repo's delta-driven translation model.

Linked Issue

Internal maintenance (recurring translation scan); no issue. Progress is recorded in config/update-translation.txt.

Visual Proof

N/A — catalog-only change, no UI layout or behavior.

Testing

  • node config/scripts/verify-localization-catalog.mjs → PASS: all five locales 15937/15951, the 14 omissions are the 11 pinned balance + 3 pinned Chat UI keys.
  • node config/scripts/audit-localization-coverage.mjs --check → PASS (13 allowlisted; no new unkeyed strings).
  • node config/scripts/verify-localization-extraction.mjs → PASS (en.json in sync with source).
  • node config/scripts/generate-runtime-required-english-catalog.mjs → PASS.
  • vitest src/renderer/src/i18n → 18 files / 215 tests pass (incl. the pinning tests).
  • vitest config/scripts/locale → 14 files / 79 tests pass.
  • Every value passed placeholder-parity and brand/code-token checks; translation quality was reviewed over 4 adversarial rounds with native-speaker reviewers per locale (see config/update-translation.txt).

Platforms: catalog-only, platform-independent.

Notes

  • Scope is translation files plus the tracker only (config/update-translation.txt + the five locale JSONs).
  • SSH/remote, mobile, packaging, performance: unaffected (JSON data only).

Checklist

  • This PR is small and focused (translation data only)
  • I explained what changed and why
  • Visual proof N/A with reason
  • Self-reviewed for correctness
  • Cross-platform/SSH/path impact: N/A (data-only)
  • Localized gates and vitest suites pass

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b5476b4c-02f4-460d-b9d5-3b00a7f283b4
📥 Commits

Reviewing files that changed from the base of the PR and between 3a274a8 and b48e480.

📒 Files selected for processing: 1
  • config/scripts/apply-translation-delta.mjs
🚧 Files skipped from review as they are similar to previous changes: 1
  • config/scripts/apply-translation-delta.mjs

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

📝 Walkthrough

The Spanish, French, Japanese, Korean, and Simplified Chinese locale files add and revise interface translations across pairing, host management, terminal recovery, account status, chat, and workspace features. The update also records the 2026-10-13 localization scan, including translation counts, stale-value fixes, validation outcomes, and findings deferred to a future pass. A new script applies translation deltas while checking English keys and placeholder sets. No application logic changes are shown.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to b48e4

The translation update is ready to merge after normal checks; no unresolved issue was identified.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title clearly identifies the main change: adding translations for the five target locales. The key count does not match the description, but the title remains relevant and specific.
Description check Passed The description is complete and covers the change, rationale, testing, visual proof, scope, and checklist. It omits some template headings, but the missing sections are non-critical for this internal,…
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.
✨ Finishing Touches: 💡 2
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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: 3


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e66e1e8f-0768-4903-87a7-57883a027dda
📥 Commits

Reviewing files that changed from the base of the PR and between ba07bd7 and c0ccd0c.

📒 Files selected for processing: 6
  • config/update-translation.txt
  • src/renderer/src/i18n/locales/es.json
  • src/renderer/src/i18n/locales/fr.json
  • src/renderer/src/i18n/locales/ja.json
  • src/renderer/src/i18n/locales/ko.json
  • src/renderer/src/i18n/locales/zh.json

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.

Comment thread config/update-translation.txt Resolved
Comment thread src/renderer/src/i18n/locales/es.json Resolved
Comment thread src/renderer/src/i18n/locales/ko.json Resolved

@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: Advanced
  • Run ID: 8e1d476c-280f-4f7c-a761-a24c8e2cd429
📥 Commits

Reviewing files that changed from the base of the PR and between f29a880 and 3a274a8.

📒 Files selected for processing: 1
  • config/scripts/apply-translation-delta.mjs

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Scan 2026-10-13: fill target-locale coverage for PRs merged since the 2026-10-07 scan. Adds the missing keys (es 295, fr 294, ja 295, ko 271, zh 283), fixes stale/mistranslated existing values, and leaves the 11 pinned provider-credit-balance keys plus 3 pinned Chat UI keys as English fallback by design. Also commits the apply-translation-delta helper referenced by the scan tracker.
@AmethystLiang
AmethystLiang merged commit e8cd6dc into main Oct 14, 2026
30 checks passed
AmethystLiang added a commit that referenced this pull request Oct 15, 2026
Scan 2026-10-14: fill target-locale coverage for PRs merged since the
2026-10-13 scan (#28486). Adds the missing keys (es 98, fr/ja/ko/zh 125
each), updates the two changed WorktreeJumpPalette strings, and fixes
pre-existing mistranslations: the ZCode missing-TUI notice (English in
all five locales), fr settings search keywords (procuration/indigene),
zh workspace-cleanup browse MT, 6 zh keys that still used Latin "Agent",
and the zh AccountsPane credential-help cluster (leftover English and a
mangled __Host-console_session token).

Leaves the 11 pinned provider-credit-balance keys plus the 3 pinned Chat
UI keys as English fallback by design. Records the scan in
config/update-translation.txt.
AmethystLiang added a commit that referenced this pull request Oct 15, 2026
Scan 2026-10-14: fill target-locale coverage for PRs merged since the
2026-10-13 scan (#28486). Adds the missing keys (es 98, fr/ja/ko/zh 125
each), updates the two changed WorktreeJumpPalette strings, and fixes
pre-existing mistranslations: the ZCode missing-TUI notice (English in
all five locales), fr settings search keywords (procuration/indigene),
zh workspace-cleanup browse MT, 6 zh keys that still used Latin "Agent",
and the zh AccountsPane credential-help cluster (leftover English and a
mangled __Host-console_session token).

Leaves the 11 pinned provider-credit-balance keys plus the 3 pinned Chat
UI keys as English fallback by design. Records the scan in
config/update-translation.txt.
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