Repository navigation
fix(i18n): correct native-chat subagent and tool-run summary strings in zh/ja/ko/fr - #33561
Conversation
|
No actionable comments were generated in the recent review.
|
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

Minor · Fix the Chinese list join and counted live labels. · zh.json:18971-18986
src/renderer/src/i18n/locales/zh.json:18971-18986
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFix the Chinese list join and counted live labels.
When three or more tool categories are rendered,
runListsupplies the final joiner. The Chinese value uses和instead of the requested enumeration punctuation. KeeprunPairunchanged because the shared formatter uses it only for exactly two clauses, where和is the correct conjunction.The counted live labels still omit
个for files, directories, commands, and integrations.Suggested fix
- "runList": "{{value0}} 和 {{value1}}", + "runList": "{{value0}}、{{value1}}", "runLiveReadOne": "读取1个文件", - "runLiveReadMany": "读取 {{value0}} 文件", + "runLiveReadMany": "读取 {{value0}} 个文件", "runLiveSearchOne": "搜索1次", "runLiveSearchMany": "搜索 {{value0}} 次", - "runLiveListFilesOne": "清单1 目录", - "runLiveListFilesMany": "列出 {{value0}} 目录", + "runLiveListFilesOne": "列出 1 个目录", + "runLiveListFilesMany": "列出 {{value0}} 个目录", "runLiveCommandOne": "运行 1 个命令", - "runLiveCommandMany": "运行 {{value0}} 命令", + "runLiveCommandMany": "运行 {{value0}} 个命令", "runLiveFileChangeOne": "编辑 1 个文件", - "runLiveFileChangeMany": "编辑 {{value0}} 文件", + "runLiveFileChangeMany": "编辑 {{value0}} 个文件", "runLiveWebSearchOne": "网上搜索1次", "runLiveWebSearchMany": "搜索网络 {{value0}} 次", - "runLiveIntegrationOne": "使用 1 集成", - "runLiveIntegrationMany": "使用 {{value0}} 集成", + "runLiveIntegrationOne": "使用 1 个集成", + "runLiveIntegrationMany": "使用 {{value0}} 个集成",

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
836d3ec0-40e9-4120-b7b4-012bf0424d40
Commits-
Reviewing files that changed from the base of the PR and between 33c76d8 and 2fdbd8d88ff513b8e22edb9745d3d86660fc825f.
Files selected for processing: 4-
src/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: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.
-
6776f4c to
51123f2
Compare
There was a problem hiding this comment.
Actionable comments posted: 1

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
95ab83d5-b69b-4848-abac-fbe110e7e7f3
Commits-
Reviewing files that changed from the base of the PR and between 2fdbd8d88ff513b8e22edb9745d3d86660fc825f and 51123f2e984143dbf23d0c0eec6ae28bb314e0cf.
Files selected for processing: 8-
src/renderer/src/components/native-chat/native-chat-tool-run-label.tssrc/renderer/src/i18n/locales/en.jsonsrc/renderer/src/i18n/locales/fr.jsonsrc/renderer/src/i18n/locales/ja.jsonsrc/renderer/src/i18n/locales/ko.jsonsrc/renderer/src/i18n/locales/zh.jsonsrc/shared/native-chat/tools/native-chat-tool-run-sentence.test.tssrc/shared/native-chat/tools/native-chat-tool-run-sentence.ts
Files skipped from review as they are similar to previous changes: 4-
- src/renderer/src/i18n/locales/ko.json
- src/renderer/src/i18n/locales/zh.json
- src/renderer/src/i18n/locales/ja.json
- src/renderer/src/i18n/locales/fr.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.
-
2b2a315 to
897d41b
Compare
…in zh/ja/ko/fr
Replace mistranslated subagent summaries ("kicked off" rendered as "fired"/
"kicked out", untranslated "Ran") and add missing measure words to the zh
tool-run clauses. Leading tool-run clauses are now joined with a translated
runListSeparator so CJK locales use 、 instead of an English comma.
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
897d41b to
56c149f
Compare
ELI5
When a chat says a subagent was started, the Chinese, Japanese and Korean text said it was fired or kicked out, and two places still showed the English word
Ran. The Chinese tool summary also dropped its counter words ("run 2 command" instead of "run 2 条 commands") and glued clauses together with an English comma. This fixes the wording and lets each language pick its own list separator.What Changed
Subagent summaries (before -> after):
startedOnestartedNranOne/ranNstartedOnestartedNranOne/ranNstartedOnestartedNranNTool-run summary in zh: added measure words (
个/条/次), fixed the然typo (->运行) and the noun清单(->列出), and join clauses with、and并:Mechanism:
joinNativeChatToolRunClausesused to hardcode', 'when joining leading clauses.NativeChatToolRunSentenceWords.listnow receives the leading clauses as an array; the English/shared formatter joins withNATIVE_CHAT_TOOL_RUN_SENTENCE_JOINERS.separator(", "), and the renderer joins withtranslate('components.native-chat.tool.runListSeparator', ', ')on each call, so a live language switch picks up the new separator. A newrunListSeparatorkey is added toen(", "),zhandja(、); other locales fall back to", "and render unchanged.Why
"Kicked off" is an idiom that machine translation read as "remove", producing 解雇 / 踢掉 / 추방 — the opposite of what happened, and inconsistent with the neighbouring
startedNstrings. The missing counters and English comma made the Chinese summary read like a machine dump, and the comma could not be fixed in the catalog alone because the joiner was hardcoded. Passing the clause array keeps the join per-locale without an extra optional getter on the format object.Linked Issue
Fixes #33552
Visual Proof
N/A — catalog strings and a string joiner only; no layout, component or styling change. The rendered text was verified by building the summary line with the real renderer
nativeChatToolRunSentenceand the real locale catalogs viai18n.t:English and Spanish output is unchanged.
Testing
Reproduced the bad strings on
mainwith a throwaway probe (renderer sentence builder + real catalogs); the same probe passes on this branch (output above).pnpm testfornative-chat-shared-copy-matches-catalog,native-chat-tool-run-label,native-chat-tool-run-sentence, andsrc/renderer/src/i18n— 15 files, 272 tests pass. The catalog-parity test now pinsrunListSeparatorinen.jsonagainst the shared separator.oxlint (anti-slop, code-quality plugins), ast-grep, changed-code-quality gate, and oxfmt clean on touched files.
Platform: macOS. Locale data and pure string joining only; no platform, SSH or path behavior involved.
I manually tested these changes locally
Automated tests added/updated, or explained why not below
Review
", ", so mobile output is unchanged.Agent skill upstream boundary
Notes
Original fix by @beduldul in #33561; maintainer follow-up switched the optional separator getter to passing the clause array and adjusted the zh pair joiner and ja counters.
智能体->Agentbrand cleanup is out of scope.Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)