Skip to content

chore(i18n): translate new keys to es/fr/ja/ko/zh (scan 2026-10-14) - #28896

Merged
AmethystLiang merged 2 commits into
mainfrom
translation-update
Oct 15, 2026
Merged

AmethystLiang merged 2 commits into
mainfrom
translation-update

Conversation

@AmethystLiang

@AmethystLiang AmethystLiang commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 0 0 0 0
Prod 6 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​891 $\color{#cf222e}{\Huge{\mathbf{−}}}$​94 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​797

ELI5

The app ships five translated languages (Spanish, French, Japanese, Korean, Simplified Chinese). When new features add English UI text, those languages fall back to English until someone translates the new strings. This PR translates everything added since the last translation pass and cleans up some old strings that were translated badly.

What Changed

  • New coverage. Translates the strings added by PRs merged since the previous translation scan (chore(i18n): translate 259 new keys to es/fr/ja/ko/zh #28486): Spanish +98 keys, French/Japanese/Korean/Simplified Chinese +125 keys each (598 new values). Before: es 15964/16076 and fr/ja/ko/zh 15937/16076 translated. After: all five at 16062/16076.
  • Changed copy. The Worktree Jump Palette search placeholders gained the word "tasks"; all five locales now include their word for tasks.
  • Fixed bad translations found along the way:
    • The ZCode "no terminal UI" notice was still English in all five locales — now translated.
    • French settings search keywords: procuration (a legal proxy) → proxy, and indigène (indigenous) → natif for "native".
    • Simplified Chinese workspace-cleanup filters had machine-translation garbage (host → 主持人 "emcee", path → 小路 "small road", blockers → 阻碍者, PR / MR → PR/先生, a leftover English "left"), plus 6 keys that still used Latin "Agent" where the project standard is 智能体, and the AccountsPane credential-help cluster (leftover English "auth cookie" and a mangled __Host-console_session token).
  • The 11 pinned provider-credit-balance keys and 3 pinned Chat UI keys are deliberately left as English fallback (existing tests assert this), so the remaining 14 "missing" keys per locale are intentional.
  • Records the scan in config/update-translation.txt.

Why

Orca's catalog model is sparse: a new English key is safe (it falls back to English) but it is untranslated, and a present-but-wrong value silently beats the fallback. The recurring translation pass keeps the five target locales caught up and repairs values that render wrong copy. Fixing the pre-existing strings here (rather than deferring again) is cheap, verified by the same gates, and removes user-visible defects like English text inside the Chinese credential help and the "emcee"/"small road" filter labels.

Linked Issue

N/A — internal localization maintenance; follows the recurring scan recorded in config/update-translation.txt (previous pass: #28486).

Visual Proof

N/A — catalog-only changes; no layout, component, or interaction change.

Testing

  • node config/scripts/verify-localization-catalog.mjs — PASS (all five locales 16062/16076; the 14 omissions are the pinned keys), 0 interpolation mismatches, 0 extra keys, 0 generic-term regressions.

  • node config/scripts/audit-localization-coverage.mjs --check — PASS (13 allowlisted).

  • node config/scripts/verify-localization-extraction.mjs — PASS.

  • node config/scripts/generate-runtime-required-english-catalog.mjs — PASS.

  • Locale vitest suites — 33 files / 304 tests PASS (src/renderer/src/i18n + config/scripts/locale*).

  • Translations were produced and reviewed by four rounds of per-locale review (translator + independent reviewer agents), with every value passing through the repo's repairTranslatedValue pipeline (brand, phrase, CJK-spacing repairs) before landing.

  • I manually tested these changes locally

  • Automated tests added/updated, or explained why not below

AI Disclosure

Internal change; not required.

Review

Agent skill upstream boundary

  • Not applicable, or this change copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.

Notes

Catalog JSON only; no code paths, IPC, or platform-specific behavior touched.

Checklist

  • This PR is small and focused
  • I explained what changed and why (ELI5, the user-facing before/after, the mechanism, and why over the alternatives)
  • Before/after screenshots or videos attached for UI changes, or N/A with reason
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH/remote, and path/shortcut impact considered (or N/A)
  • pnpm lint, pnpm typecheck, pnpm test, and pnpm build pass (or CI will cover; local preferred)

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.
@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

📝 Walkthrough

The Spanish, French, Japanese, Korean, and Chinese locale files add and revise interface translations for agent settings, task search, AI Vault messages, Jira workflows, and update status. The Chinese and French files also receive terminology and search-keyword edits. The translation scan record documents the scan results and remaining findings.

Priority: ⬇️ Low

Merge Risk: 🔵 Low · up to 101df

Two translations should be corrected for clarity, but neither appears to block use of the affected workflow. The change is mergeable with those fixes or bounded follow-up.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the localization change, target locales, and translation scan date.
Description check Passed The description is complete and aligned with the template. It explains the user impact, changes, rationale, intentional English fallbacks, validation steps, visual-proof rationale, and checklist statu…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
  • 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: 2


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 86c0e889-3981-4ba1-8694-9016bc36f427
📥 Commits

Reviewing files that changed from the base of the PR and between 39815a0 and 101dfed.

📒 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; 9 remain after this review.

Comment thread src/renderer/src/i18n/locales/ko.json Resolved
Comment thread src/renderer/src/i18n/locales/zh.json Resolved
@AmethystLiang
AmethystLiang enabled auto-merge (rebase) October 15, 2026 00:15
- ko Worktree Jump Palette: render "actions" as 동작 so it is distinct from
  the tasks entry (작업) in the same list.
- zh DevTools cookie instruction: clarify the filter phrase to
  `任意包含 remains 的请求`, keeping the literal `remains` request name.
@AmethystLiang
AmethystLiang merged commit a140cc4 into main Oct 15, 2026
3 checks passed
smwbev added a commit to smwbev/orca that referenced this pull request Oct 15, 2026
main moved 171 commits. Two kinds of conflict:

- es, fr, ja, ko and zh: the translation sync (stablyai#28896) and this branch
  both appended keys to the end of auto.components.TaskPage. main's six
  Jira column labels and jiraBoardEmptyColumn come first, then the four
  labelCount and memberCount sentences from this branch.
- ko-ui-semantic-mistranslations.test.ts was deleted on main (stablyai#28669);
  this branch only dropped the pinned sshImportSynced value from it, so
  the deletion is taken.

en.json merged on its own. Against main the branch still removes the
same twelve keys and adds the same 24 in all six catalogs, with no other
value changed.
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