Repository navigation
fix(i18n): use the Pi form's own term for the zh-TW duplicate-key message - #7187
Conversation
…sage Follow-up to the nit on farion1231#6768. In zh-TW the Pi form labels the field 供應商識別碼 and says 供應商識別碼為必填 when it is empty, but the duplicate message I added said 供應商標識 — the term Hermes, OpenCode and OpenClaw use for their own field. One form, two names for the same thing. The other three locales already keep the label and both messages on one term, so this makes zh-TW match the pattern rather than introduce one: en Provider key / Provider key is required / This provider key already exists ja プロバイダーキー / プロバイダーキーを入力してください / このプロバイダーキーは既に存在します zh 供应商标识 / 供应商标识不能为空 / 该供应商标识已存在 zh-TW 供應商識別碼 / 供應商識別碼為必填 / 該供應商標識已存在 <- the odd one out hermes.form.providerKeyDuplicate carries the same sentence and is left alone: its own label is 供應商標識, so it is already consistent. Verified: managementListLocales 7/7. Full unit suite 1085/1087, the same two App.test.tsx integration cases failing before and after.
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Thanks @ntdatt812 for following up and making the Pi form's zh-TW terminology consistent! The change looks good. I verified that only the intended translation changed; all 10 relevant locale and error-translation tests pass, and Prettier is clean. Thanks also for the detailed verification notes. |
…sage (farion1231#7187) Follow-up to the nit on farion1231#6768. In zh-TW the Pi form labels the field 供應商識別碼 and says 供應商識別碼為必填 when it is empty, but the duplicate message I added said 供應商標識 — the term Hermes, OpenCode and OpenClaw use for their own field. One form, two names for the same thing. The other three locales already keep the label and both messages on one term, so this makes zh-TW match the pattern rather than introduce one: en Provider key / Provider key is required / This provider key already exists ja プロバイダーキー / プロバイダーキーを入力してください / このプロバイダーキーは既に存在します zh 供应商标识 / 供应商标识不能为空 / 该供应商标识已存在 zh-TW 供應商識別碼 / 供應商識別碼為必填 / 該供應商標識已存在 <- the odd one out hermes.form.providerKeyDuplicate carries the same sentence and is left alone: its own label is 供應商標識, so it is already consistent. Verified: managementListLocales 7/7. Full unit suite 1085/1087, the same two App.test.tsx integration cases failing before and after.
…sage (farion1231#7187) Follow-up to the nit on farion1231#6768. In zh-TW the Pi form labels the field 供應商識別碼 and says 供應商識別碼為必填 when it is empty, but the duplicate message I added said 供應商標識 — the term Hermes, OpenCode and OpenClaw use for their own field. One form, two names for the same thing. The other three locales already keep the label and both messages on one term, so this makes zh-TW match the pattern rather than introduce one: en Provider key / Provider key is required / This provider key already exists ja プロバイダーキー / プロバイダーキーを入力してください / このプロバイダーキーは既に存在します zh 供应商标识 / 供应商标识不能为空 / 该供应商标识已存在 zh-TW 供應商識別碼 / 供應商識別碼為必填 / 該供應商標識已存在 <- the odd one out hermes.form.providerKeyDuplicate carries the same sentence and is left alone: its own label is 供應商標識, so it is already consistent. Verified: managementListLocales 7/7. Full unit suite 1085/1087, the same two App.test.tsx integration cases failing before and after. (cherry picked from commit de970c1)
feat: gate dev panel behind dev-only env flag chore(comet): archive ccs-sidebar-panels-visibility change fix: apply skills visibility guard to hermes branch toolbar button feat: include prompts in sidebar panel visibility settings fix: persist visibleSidebarPanels setting in backend AppSettings style: use compact pill toggles for sidebar panel visibility feat: add sidebar panel visibility switches to settings feat: add sidebar panel visibility settings and wire into toolbar buttons chore(comet): archive ccs-home-model-display change fix(fork): read grokbuild api key from config TOML in quick switch dialog feat(fork): align model badge with upstream extractModelBadge feat(fork): show current model badge and quick-switch entry on provider cards feat(fork): add model quick switch dialog feat(fork): add provider model read/write utils with tests chore(comet): archive ccs-model-search-port change feat(i18n): add model search picker keys for all locales feat(form): port SearchableModelPicker from upstream for searchable model selection chore(comet): archive ccs-claude-form-layout change - Move change artifacts to docs/openspec/changes/archive/2026-08-19-ccs-claude-form-layout/ - Sync claude-form-layout spec to main specs - Annotate design doc as archived - Add verification report fix(i18n): update advanced options hint, add ja/zh-TW toggle-all, drop dead apiFormatHint key fix(form): correct 1M toggle-all alignment direction (ml-1) fix(form): align 1M toggle-all checkbox with row checkboxes refactor(form): move api format select into EndpointField rightSlot fix(form): widen api format select to fit option text feat(form): add 1M toggle-all checkbox in model mapping header feat(form): move api format select next to endpoint input chore(comet): archive ccs-provider-presets-trim change - Move change artifacts to docs/openspec/changes/archive/2026-08-19-ccs-provider-presets-trim/ - Sync provider-presets-visibility spec to main specs - Annotate design doc as archived - Add verification report docs(fork): add presets-trim files to rebase whitelist test(fork): mock IS_FORK_BUILD false in unit tests for upstream-form semantics feat(fork): wire official preset filter into provider forms feat(fork): add hidden field to preset interfaces feat(fork): add official preset allowlist and filter util chore(comet): archive ccs-fork-scaffolding change - Move change artifacts to docs/openspec/changes/archive/2026-08-18-ccs-fork-scaffolding/ - Sync fork-build-identity spec to main specs - Annotate design doc as archived - Add verification report feat(fork): add dev config with isolated identifier and config dir docs(fork): complete rebase whitelist with all fork-touched files fix(fork): guard setTitle with isTauri in test/non-tauri env fix(fork): define __CCS_FORK_BUILD__ in vitest config feat(fork): add DevPanel and settings footer entry feat(fork): set macOS window title to CC Switch (Fork) on startup feat(fork): inject __CCS_FORK_BUILD__ compile-time constant feat(fork): bump version to 3.19.2-fork.1 and rename product to CC Switch (Fork) docs(fork): add upstream rebase workflow and ignore tool artifacts fix(proxy): accept the whole grok-4.x (x>=5) family in the reasoning-effort whitelist (#7369) Replace the verbatim grok-4.5 / grok-4.6 entries in supports_reasoning_effort with a rule that parses the grok-4.x minor version and accepts x >= 5, mirroring the existing GPT-5+ rule. This covers grok-4.7 (released 2026-09-21), whose reasoning effort was previously dropped on the Claude -> Chat, Claude -> Responses and Codex Responses -> Chat conversion paths, and lets future releases pass without another whitelist edit. The grok-build-* family is retained for saved providers. Co-authored-by: allenxu09 <[email protected]> docs(release): add v3.20.4 release notes chore(release): v3.20.4 feat(pricing): add Grok 4.7 and GLM-5.3-FlashX Both confirmed against the vendors' official pricing pages (docs.x.ai, docs.z.ai) and match models.dev. Grok 4.7 records the base (<200K) tier like 4.5/4.6. fix(i18n): remove outdated OpenCode Go referral offer fix: add SudoCode.chat alternate API endpoint feat(settings): add a GitHub star prompt to the About card Downloads and updates now go through ccswitch.io, so users no longer pass through the GitHub repo and rarely star it. Surface the ask where they still look: between the app title and the action buttons. - Show a one-line prompt in the primary color that opens the repo, followed by a pointer toward the GitHub button - Move the GitHub button to the front of the row so the pointer lands on it, tint it with the primary color (kept below the solid "check for updates" action), and add a slowly spinning star that stops under prefers-reduced-motion - Add settings.starPrompt to all four locales feat(presets): add Soshow aggregator presets Add non-sponsor presets for Soshow Model Market (maas.so-show.com) across Claude Code, Claude Desktop, Codex, OpenCode, OpenClaw, Hermes and Pi, plus its icon. - Claude Code sets CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS, which the vendor's Model API doc requires for the Claude protocol, and points the Haiku tier at claude-sonnet-5 since the market offers no Haiku model. - Claude Desktop declares only the sonnet/opus routes: direct mode cannot map models, so passthroughRoutes() would expose a Haiku route that 404s. - Codex uses native Responses at /v1. The route is not in the vendor docs but exists (unknown paths return 404, /v1/responses returns 401 without a key). - OpenCode, OpenClaw, Hermes and Pi use the Anthropic protocol with the two Claude models, matching the vendor's OpenClaw guide. - Gemini CLI is skipped: the native generateContent routes return 404. fix(ci): stabilize frontend tests and verify renderer build fix(mcode): refresh provider state after removal (#7578) Co-authored-by: thisTom <[email protected]> fix(lib): reset skip_taskbar before window.show() across entry points (#6348) 5处 window.show() 调用中 4处没有在 show() 前重置 Windows 的 skip_taskbar,导致以下场景出现窗口可见但不在任务栏、点最小化后窗口消失的 bug: - single_instance handler (lib.rs:360-361):当原进程因 silent_startup / 关闭到托盘等处于 skip_taskbar(true) 状态时,从快捷方式/开始菜单唤起已运行实例触发。 - handle_deeplink_url 的 focus_main_window 分支 (lib.rs:256):通过 ccswitch:// URL 唤起时。 - DB 恢复流程 (lib.rs:556):数据库版本不匹配时显示恢复界面。 - RunEvent::Opened 处理器 (lib.rs:1803):系统接收到 deep-link URL 时。 修复后的行为与 tray.rs::h
Follow-up to your nit on #6768 — thank you for flagging it, you were right.
In zh-TW the Pi form labels the field 供應商識別碼 and says 供應商識別碼為必填 when it is empty, but the duplicate message I added said 供應商標識 — the term Hermes, OpenCode and OpenClaw use for their field. One form, two names for the same thing.
Checking the other three locales, they all keep the label and both messages on a single term, so zh-TW was the only one that split:
So this is not a new convention, just zh-TW joining the one already there.
hermes.form.providerKeyDuplicatecarries the same sentence and is deliberately untouched — its own label is 供應商標識, so it is already self-consistent. The string appears twice in the file; only thepi.formone is changed.Verification
vitest run tests/config/managementListLocales.test.ts— 7/7.Full unit suite: 1085/1087. The two failures are
tests/integration/App.test.tsxcases that fail identically onmainwithout this change; they pass when that file is run on its own, so they look order-dependent rather than related.One note in case it saves you time later: my first full-suite run with this change showed a third App.test.tsx failure (
duplicates openclaw providers…). Re-running gave the same two as the baseline, and that test does not touch i18n at all — it drivesswitch-openclaw/duplicatetest ids. It looks flaky rather than real, but I would rather mention it than quietly drop it.prettier --checkclean.