Repository navigation
Complete Simplified Chinese (zh-Hans) localization - #12052
mengyang0007-dev wants to merge 1 commit into
Conversation
Brings zh-Hans in the macOS string catalogs from partial to effectively
complete, and makes the existing translations terminologically consistent.
Resources/Localizable.xcstrings (5890 keys)
zh-Hans entries: 1837 -> 5707 (96.9% of all keys)
- 3870 keys newly translated
- 367 existing values revised
- 146 entries promoted out of a non-final state
(137 needs_review, 9 new) -> translated
- 0 entries left in needs_review or new
- 183 keys intentionally carry no zh-Hans: product and brand names,
technical acronyms, price literals, and format-only strings
(e.g. "%1$@: %2$@", "%@ px", "PID %lld") where a translation would
only duplicate English
Resources/InfoPlist.xcstrings
zh-Hans entries: 13 -> 29 (complete); the 16 additions follow the
wording and register already used by the existing 13.
Packages/macOS/CmuxSwiftRenderUI/.../Localizable.xcstrings
zh-Hans entries: 0 -> 3 (complete)
Terminology unified across old and new translations
workspace -> 工作区 tab -> 标签页 pane -> 窗格
panel -> 面板 surface -> 表面 split -> 拆分
sidebar -> 侧边栏 agent -> 代理 browser -> 浏览器
remove -> 移除 OK -> 确定 Cancel -> 取消
47 previously inconsistent entries were rewritten to this glossary;
the catalog had used 窗格/面板 interchangeably for pane, 拆分/分屏
for split, and 表面/界面/Surface for surface.
Other conventions
- Ellipsis follows the English source character for character:
"…" stays "…", "..." stays "...".
- Product names, CLI subcommands, flags, key names, config keys and
environment variables are never translated; CLI help text keeps its
flag columns in English and translates only the prose.
- 65 keys whose English source changed upstream since the previous
zh-Hans pass were re-translated rather than carried over.
Verification
- All three catalogs parse as JSON.
- Every zh-Hans value has a printf placeholder multiset and newline
count identical to its English source, for all values this change
writes.
- No en, ja or any other locale value, and no entry-level metadata,
differs from the previous revision; the diff is zh-Hans only.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
@mengyang0007-dev is attempting to deploy a commit to the Manaflow Team on Vercel. A member of the Team first needs to authorize it. |
|
All contributors have signed the CLA ✍️ ✅ |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThis change adds Simplified Chinese ( ChangesSimplified Chinese localization
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to This change adds Simplified Chinese sidebar text and macOS usage descriptions without altering application behavior or permissions. No current merge-blocking risk remains. Suggested reviewers: 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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 Warning |
|
I have read the CLA Document v2.2 and I hereby sign the CLA |
|
Thank you for this! The Simplified Chinese macOS catalog is already complete on main through #12169, so this PR is superseded and I’m closing it :) |
Summary
This brings zh-Hans in the macOS string catalogs from partial to effectively
complete, and makes the pre-existing Chinese translations terminologically
consistent with each other.
Resources/Localizable.xcstringsResources/InfoPlist.xcstringsPackages/macOS/CmuxSwiftRenderUI/.../Localizable.xcstringsIn the main catalog: 3870 keys newly translated, 367 existing values
revised, and 146 entries promoted out of a non-final state (137
needs_review, 9new) totranslated. No entry is left inneeds_reviewor
new.Nothing but
zh-Hansis touched. Noen,jaor other locale value, and noentry-level metadata, differs from the previous revision.
Coverage and what is deliberately left in English
183 of 5890 keys carry no zh-Hans entry on purpose, because a "translation"
would only duplicate the English and would read as a placeholder:
Claude Code,Codex,OpenCode,Kimi Code,Ollama,Cursor,Copilot,Gemini,Grok,Ghostty,Tailscale,Iroh,Discord,cmux Pro.UDID,PID,CPU,URL,LTE,5G,Wi-Fi,Face ID,HomeKit,Siri,VoiceOver,WebView,AppKit,SwiftUI,React,Solid.%1$@: %2$@,%@ • %@,%@ px,PID %lld,:%lld,⌘↩.$0,$50,$0.40,4 vCPU / 16 GB,SOC 2.viewport <width> <height> | reset.This follows the repo's own review rule against "placeholder, copied
English, machine marker, TODO, or empty translations used to satisfy a
locale slot" (
.github/review-bot-rules/full-internationalization.md).Terminology
The catalog previously used several Chinese words interchangeably for the
same cmux concept —
paneappeared as both 窗格 and 面板,splitas both拆分 and 分屏,
surfaceas 表面, 界面 and an untranslatedSurface. Sincepanelis its own distinct concept in cmux,pane→面板 was activelymisleading. This PR
settles on one word per concept and rewrites the 47 entries that disagreed:
paneOther conventions applied throughout:
…stays…; a source...stays.... Menu items and CLI output inthis repo use both, and they now match one-to-one.
Flag names, subcommands, option columns, env vars, config keys and example
command lines stay verbatim; only descriptions and section headers are
translated (
用法:/标志:/示例:), matching the style of the CLIhelp strings that were already translated.
never translated.
InfoPlist.xcstringskeeps its own register. The 13 pre-existingentries address the user as 您; the 16 added ones do the same, rather
than importing the 你 used in the app UI.
settings.search.*alias strings keep their English keywords and appendChinese ones, which is what the 110 already-translated alias entries in
this catalog do — Chinese users can then find a setting by either.
Keys whose English changed upstream
65 keys had their English source edited since the previous zh-Hans pass —
most of them the
Stack→cmuxrename in the sign-in flow (e.g.account.signIn.error.network.title: "Couldn't reach Stack" → "Couldn'treach cmux"). Those were re-translated from the current English rather than
carried over, so no stale product name survives in Chinese.
How to verify
No Xcode build is required to check this diff.
All three catalogs still parse.
Nothing outside
zh-Hansmoved. For each catalog, compare everylocale except
zh-Hans, plus the entry metadata and the top-level keys,against
origin/main:Placeholders and line breaks match English. Every zh-Hans value this
PR writes has the same printf placeholder multiset (
%@,%lld,%1$@,%d,%s,%.0f) and the same\ncount as its English source:This reports 38 keys in
Resources/Localizable.xcstrings, and all 38are pre-existing values this PR does not touch (see "Pre-existing
issues" below). Every value the PR writes matches.
Formatting. The catalogs were edited by splicing only the
zh-Hansmembers, so indentation, key order and every other byte are unchanged;
git diffshows added/replaced"zh-Hans"blocks and nothing else.Pre-existing issues found but not changed here
These are left alone to keep this PR translation-only. Happy to send
separate PRs if you want them fixed.
127 string entries in
Resources/Localizable.xcstringssit outside the"strings"object. From line 292853 the file closes"strings"andthen continues with entries such as
"browser.chromium.automation.commandTimedOut"as siblings of"sourceLanguage"/"strings"/"version", in compact one-line JSONrather than the file's indented style. A String Catalog only reads
strings, so these 127 keys — the Chromium browser engine errors, thesplit-button debug menu, the Cloud VM tunnel and
cmux vpnstatusstrings, and the
settings.browser.*engine rows — are invisible toXcode and ship untranslated in every locale, English included. They look
like the output of a script that appended to the wrong nesting level.
38 existing zh-Hans values drift from their English source. 32 are
settings.search.alias.*entries carrying a trailing• %@that theEnglish does not have; 6 are CLI help strings
(
cli.help.mosh,cli.help.ssh.mosh,cli.help.clearNotifications,cli.help.reorderWorkspaces,cli.comments.usage,cli.restore.help)whose Chinese has a different line count from the English, so their
wrapped help output does not line up.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ea6L3DAe659mCmXwU4T7Hu
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Completes zh-Hans localization across all three macOS string catalogs, raising the main catalog from 1,837 to 5,707 translated keys and unifying previously inconsistent Chinese terminology. Only
zh-Hansvalues change; no other locale or entry-level metadata is touched.Coverage
needs_review/newtotranslated; no entries remain in a non-final state.Resources/InfoPlist.xcstringsand theCmuxSwiftRenderUIpackage catalog are now complete (29 and 3 keys respectively).Terminology and conventions
stringsobject and 38 zh-Hans values drifting from English) but left them for separate PRs.Written for commit ac6b0c8. Summary will update on new commits.
Summary by CodeRabbit