Repository navigation
chore(i18n): translate 85 new keys to es/fr/ja/ko/zh - #22746
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📥 CommitsReviewing files that changed from the base of the PR and between a36986617db4951b7894d2d38143e2f76fcab3bf and feda60f. 📒 Files selected for processing (5)
🚧 Files skipped from review as they are similar to previous changes (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe Spanish, French, Japanese, Korean, and Simplified Chinese locale files add or revise strings for subscription status, native-chat resume and delivery feedback, local Git toolchain scanning, OpenCode Go API-key settings, Python notebook controls, file links, and context usage. The Spanish locale also adds a Codex configuration-source error message. Priority: ⬇️ Low Merge Risk: 🔵 Low · up to Two French chat-count labels use awkward singular wording. This affects localized copy rather than task completion, so the change is mergeable with a bounded copy follow-up. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: ea8f212c-85d2-4b08-b9ac-f8303404781a
📒 Files selected for processing (5)
src/renderer/src/i18n/locales/es.jsonsrc/renderer/src/i18n/locales/fr.jsonsrc/renderer/src/i18n/locales/ja.jsonsrc/renderer/src/i18n/locales/ko.jsonsrc/renderer/src/i18n/locales/zh.json
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.
There was a problem hiding this comment.
ℹ️ No critical issues — two Korean terminology suggestions inline.
Reviewed changes
- Resume-after-restart copy — adds the failure/check status-segment strings, the modal's outcome rows, and the per-failure guidance for all five locales.
- Notebook (ipynb) kernel strings — adds the kernel lifecycle, Python/ipykernel setup, cell-action, and execution-error copy.
- Xcode-blocked Git banner — adds the sidebar banner titles/bodies, affected-worktree count, copy, retry, and restored strings.
- OpenCode Go settings and misc — adds the API-key settings copy, the no-subscription label, file-link errors, the context-usage label, and the unconfirmed-handoff prompt.
I re-ran the repo gates rather than trusting the PR body: verify:localization-catalog, verify:localization-coverage, verify:localization-extraction, and verify:localization-runtime-catalog all pass, and the catalog script's key/placeholder-parity check confirms no extra keys and matching {{...}} sets in every locale. 168 locale tests pass. (I18nProvider.test.tsx fails to resolve @/store in this environment, but that is a pre-existing alias/config issue, unrelated to a JSON-only diff.)
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: 03172825-5da7-42bb-9b0f-80c38cfb3847
📒 Files selected for processing (5)
src/renderer/src/i18n/locales/es.jsonsrc/renderer/src/i18n/locales/fr.jsonsrc/renderer/src/i18n/locales/ja.jsonsrc/renderer/src/i18n/locales/ko.jsonsrc/renderer/src/i18n/locales/zh.json
🚧 Files skipped from review as they are similar to previous changes (3)
- src/renderer/src/i18n/locales/ko.json
- src/renderer/src/i18n/locales/zh.json
- src/renderer/src/i18n/locales/ja.json
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.
There was a problem hiding this comment.
Important
pnpm run verify:localization-catalog fails at this head. The main merge swapped in main's current English catalog, and two IpynbViewer keys the branch still adds are now stale extras in all five locales — details inline.
Reviewed changes
- Merged
mainintotranslation-update— the only new commit since the last review; it brought main's currenten.jsonand locale content into the branch, which is what exposed the stale keys below. Several translation values also changed as a result of the merge resolution. - Resume-after-restart, notebook, Xcode-banner, and OpenCode Go copy — carried over from the last review; the two open Korean terminology threads remain unaddressed and are left open rather than re-raised.
The other three localization gates (verify:localization-coverage, verify:localization-extraction, verify:localization-runtime-catalog) pass at this head, and all five catalogs parse with no duplicate keys.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
Important
The static analysis CI job is red at this head: verify:localization-catalog still fails on two stale IpynbViewer keys present in all five locales (details inline). This must be cleared before merge.
Reviewed changes
The only new commit since the last Pullfrog review (4d506e8) is a369866 — a terminology pass responding to the prior Korean threads:
- French resume-conflict guidance — reworded
NativeChatResumeFailureGuidance.conflictto tell the reader to close the other Orca window or terminal. - Korean resume terminology — normalized
다시 시작→재개acrossNativeChatResumeStatusSegment,NativeChatResumeOnRestartModaloutcome rows,NativeChatResumeOutcomeRow, andNativeChatResumeFailureGuidance, so "resume" no longer collides with "restart" incheckTooltip. - Korean context-usage title — aligned
contextUsage.titleto컨텍스트, matching itslabel.
The other three locale gates (verify:localization-coverage, verify:localization-extraction, verify:localization-runtime-catalog) pass at this head, and all five catalogs parse with no duplicate keys.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
- Standardize Korean terminology from "restart" to "resume" for chat resume functionality - Clarify French error message for conflicting Orca windows/terminals - Fix Korean context translation (문맥 → 컨텍스트)
a369866 to
feda60f
Compare
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
The only new commit since the prior Pullfrog review (a369866) is feda60f — a notebook-translation cleanup that also clears the CI blocker:
- Removed the stale
IpynbViewerkeys —chooseAnotherandinstallFailedare gone from all five locales, soverify:localization-catalognow passes (re-ran locally: exit 0, no extras). - Retranslated the notebook kernel copy — reworded the ipynb lifecycle/setup/error strings across
es/fr/ja/ko/zh(kernelDied,missingIpykernel,runAll,interrupt, …), and dropped a duplicatepythonOnlykey inko.json.
I re-ran the failing gate plus the targeted locale suites at this head: verify:localization-catalog passes and all 81 locale tests pass (translation-policy incl. round5/es-pr/zh-status-bar, generic-ui-terms, catalog, jsx spacing guard). The values-only delta leaves the other three localization gates unaffected, and all five catalogs parse with no duplicate keys. The prior blocking thread is replied to and resolved; the pending native-speaker pass noted in the PR body remains the author's call.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏

ELI5
Several recent features shipped with English-only text. This adds the missing Spanish, French, Japanese, Korean, and Chinese translations so users in those languages see proper copy instead of English fallbacks.
What Changed
Added 85 translations to each of
es.json,fr.json,ja.json,ko.json,zh.json(425 strings total). Before, these keys fell back to English at runtime; after, each locale renders native copy. Covered areas:Placeholders (
{{value0}},{{agent}},{{command}}, …), markdown links, and brand names (Orca, OpenCode, Git, Python, ipykernel) are preserved verbatim per the repo translation policy; five values were normalized by the repo's ownrepairTranslatedValuepass.Why
The sparse-catalog architecture (PR #8512) lets feature PRs land English-only, but the missing translations pile up (this batch: PRs #22301, #22448, #22581, #22551, #22546, #22552, #22370, #22519). This is the localization catch-up for that batch. Alternative of leaving them falls back to English, which works but degrades non-English UI.
Linked Issue
N/A — routine localization catch-up, no tracking issue.
Visual Proof
N/A — locale JSON data only; no component or layout change. Strings render through the existing i18n path.
Testing
verify:localization-catalog— 14,889 key references verified, no extras/placeholder mismatchesverify:localization-coverage,verify:localization-extraction,verify:localization-runtime-catalog— passAgent skill upstream boundary
Notes
Data-only change to locale catalogs. No code, path, shortcut, platform, SSH, or mobile impact. Untracked helper script + scan tracker (
config/scripts/apply-translation-delta.mjs,config/update-translation.txt) are intentionally left out of this PR.Checklist