Skip to content

feat(i18n): complete the Simplified Chinese catalog (7288/7288) - #4142

Open
AndersHsueh wants to merge 1 commit into
milind-soni:mainfrom
AndersHsueh:zh/simplified-chinese-complete
Open

AndersHsueh wants to merge 1 commit into
milind-soni:mainfrom
AndersHsueh:zh/simplified-chinese-complete

Conversation

@AndersHsueh

Copy link
Copy Markdown

What changed

src/locales/zh.json now covers the whole English catalog: 7288 / 7288 keys (100%), up from 3570 (49%). Key order matches en.json exactly.

  • 3718 newly translated keys (the 3554 the app shipped plus everything added since).
  • Terminology held to one word each: 机器人 (bot), 群组聊天 (room), 部门 (department), 例行任务 (routine), 模型提供方 (model provider), 智能体 (agent), 密钥 / token, 方案 (plan), 额度 (credits), 用量 (usage), 负责人 (owner/lead).
  • Product and provider names stay in English: MausBot Cloud, Boat, Postiz, HighLevel, Grok, Codex, Jev, DeepSeek Harness.
  • Existing values that used Traditional Chinese wording were normalized to Simplified: 房間/聊天室 → 群组聊天, 代理程序 → 智能体, 主控台 → 管理后台, 載入 → 加载, 自訂 → 自定义, 封存 → 归档, 釘選 → 置顶, 網域 → 域名, 標頭 → 头信息, plus 「」 quotes, 「——」 dashes, 「…」 ellipses and full-width punctuation throughout.

Only src/locales/zh.json changed. zh-tw.json is untouched (still a partial pack).

Why

Simplified Chinese was half English in the UI: any key missing from zh.json falls back to English, so about 51% of the interface stayed in English for zh users. This closes the gap so the language is usable end to end.

How it was verified

  • pnpm i18n:check → zh.json: 100% (7288/7288), locale catalogs valid (16 languages, 7288 English strings). No source-hash edits: new keys carry no recorded hash, as docs/localization.md describes.
  • Placeholder parity for every key, including repeated placeholders ({name} twice, {bot} {where}, {count} in plurals) — 0 mismatches against en.json.
  • Key set and key order identical to en.json — 0 missing, 0 extra.
  • Spot-checked against English for meaning, not just coverage: clause-by-clause review of every long string (drafts that had dropped a sentence were corrected), negation parity for never / no longer / can't / must not, digit and unit parity, and a scan for untranslated leftovers (the only values identical to English are brand names and placeholder-only strings).
  • No Traditional-only characters and no Taiwan-specific vocabulary remain (checked programmatically against a term list).

pnpm typecheck / pnpm test were not run locally: this checkout has no node_modules, and a JSON catalog does not affect either. CI covers both.

Screenshots (UI changes)

None yet — I can add before/after shots of Settings → General → 简体中文 on request. The visible change is that previously-English screens now render in Chinese.

Checklist

  • pnpm typecheck and pnpm test pass locally — not run here (no node_modules in this checkout); pnpm i18n:check does pass.
  • Server behavior changes come with tests — no server changes.
  • No dist-server/ edits
  • macOS-only code is platform-gated; no shell: true / cmd.exe string-building — untouched.
  • No secrets in logs, responses, events, or argv

zh.json covered 3570 of 7288 keys (49%), so Simplified Chinese users saw
English for the rest of the UI. Translate the remaining 3718 keys and bring
the file in line with en.json.

- Preserve every placeholder, including repeated ones, and keep the key
  order identical to en.json so the diff stays reviewable.
- Project terminology: 机器人 (bot), 群组聊天 (room), 部门 (department),
  例行任务 (routine), 提供方 (provider), 智能体 (agent), 密钥 (key),
  token, 方案 (plan). Product names stay in English (MausBot Cloud, Boat,
  Postiz, HighLevel, Grok, Codex, Jev).
- Normalize the existing values that used Traditional Chinese wording
  (房間/聊天室, 代理程序, 主控台, 載入, 自訂, 封存, 釘選, 網域, 標頭 …),
  full-width punctuation, 「」 quotes and 「——」 dashes.
- pnpm i18n:check passes: 100% (7288/7288), 16 languages valid.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@vercel

vercel Bot commented Nov 2, 2026

Copy link
Copy Markdown

@AndersHsueh is attempting to deploy a commit to the SupaMaus Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Nov 2, 2026

Copy link
Copy Markdown

Important

Review skipped

We couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting @coderabbitai full review.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@AndersHsueh

Copy link
Copy Markdown
Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Action not completed

Incremental review skipped.

This branch has not been deployed

No deployments
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