Skip to content

fix(i18n): complete zh-TW strings and unify Taiwan terminology - #4185

Open
ranrany123 wants to merge 2 commits into
binaricat:mainfrom
ranrany123:fix/zh-tw-terminology
Open

ranrany123 wants to merge 2 commits into
binaricat:mainfrom
ranrany123:fix/zh-tw-terminology

Conversation

@ranrany123

Copy link
Copy Markdown
Contributor

Summary

Fixes user-visible localization gaps in the shipped UI: one block of Simplified Chinese in the Traditional Chinese locale, missing keys that fell back to English, translated metavariables, and mixed Taiwan terminology.

Type of Change

  • Bug fix
  • New feature
  • Refactor / code cleanup
  • Documentation update
  • Build / CI change
  • Other (please describe): localization fixes (zh-CN / zh-TW)

Related Issue (optional)

N/A

Changes Made

  • Translate the 19 settings.plugins.sources.* values in zh-TW/core.ts that were still Simplified Chinese.
  • Add the 9 missing ai.providers.headers.* keys to zh-TW/ai.ts.
  • Add dialog.createWorkspace.title and field.selectHosts to zh-CN/core.ts; CreateWorkspaceDialog already looked them up, so the labels rendered in English.
  • Keep {{name}} / {{name:default}} literal in snippets.field.variablesHelp (zh-CN and zh-TW). The previous text translated the metavariable names, so users copying the hint would create a variable literally called 名称.
  • Unify Traditional Chinese terminology across the shipped locale: 外掛, 市集, 行程, 指令碼, 金鑰, 佔位符, 檔案系統, 網路, 資料, 使用者, 預設.
  • Tighten localeParityLocales.test.ts: zh-CN and zh-TW are at full key parity, so LOCALES_PENDING_PARITY is now ["ru"], and interpolation placeholders are checked for every translated locale instead of only es.

Screenshots / Demo

No layout changes; strings only. The plugin-source dialog, AI provider header editor, and create-workspace dialog are the visible surfaces.

Testing

  • I have tested these changes locally (npm run dev was not needed; the strings were verified through the locale modules and tests)
  • Linting passes (npm run lint)
  • Tests pass (npm test) — the full suite was not run; the locale tests were run directly (below)
  • Generated capability tool specs are updated when applicable (npm run generate:capability-tools) — not applicable
  • No new console errors or warnings, if this affects app behavior
node --test --import tsx application/i18n/locales/*.test.ts
  tests 59 / pass 59 / fail 0

node scripts/list-untranslated-autocomplete-descriptions.mjs   # unaffected by this PR
  only the known node shared key and NO_SPEC ip netstat ss

npm run lint    # clean

Key parity after the change: zh-CN 4686 keys, zh-TW 4686 keys, 0 missing, 0 extra, 0 placeholder mismatches.

Checklist

  • My code follows the existing project style
  • I have added or updated relevant documentation
  • I have not introduced any breaking changes (or I have described them above)

- Translate the 19 settings.plugins.sources.* keys that were still in
  Simplified Chinese, and add the 9 missing ai.providers.headers.* keys.
- Add the two zh-CN keys the dialog already looked up (createWorkspace.title,
  field.selectHosts) so those labels no longer fall back to English.
- Keep {{name}} / {{name:default}} literal in snippets.field.variablesHelp;
  the previous text translated the metavariable names.
- Unify zh-TW terms in the shipped UI: 外掛, 市集, 行程, 指令碼, 金鑰,
  佔位符, 檔案系統, 網路, 資料, 使用者, 預設.
- Tighten localeParityLocales: zh-CN and zh-TW are at full parity, so move
  them out of LOCALES_PENDING_PARITY and check interpolation placeholders for
  every translated locale, not just es.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-08T04:55:56.951742Z fc6e391 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Review follow-up on the terminology pass:

- Replace the remaining mainland terms on the plugin settings screen:
  導入→匯入, 卸載→解除安裝, 存儲→儲存, 遠程→遠端, 加載→載入. 網路設備 is
  correct Taiwan usage and stays.
- Widen the interpolation token regex so {{name:default}} is compared too;
  the previous \w+ form silently ignored the colon and could not catch a
  translated metavariable. Add a direct assertion for that form.
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