Skip to content

i18n(zh-CN): Settings navigation, Expectations and Themes - #132

Merged
X4Applegate merged 1 commit into
X4Applegate:mainfrom
chongfenglaosiji:i18n/zh-CN-settings-nav
Oct 10, 2026
Merged

X4Applegate merged 1 commit into
X4Applegate:mainfrom
chongfenglaosiji:i18n/zh-CN-settings-nav

Conversation

@chongfenglaosiji

Copy link
Copy Markdown
Contributor

i18n(zh-CN): Settings navigation, Expectations and Themes

What & why

Next batch of the zh-CN catalog: Settings navigation, Expectations and Themes, as a data-only change.

Data-only: web/i18n/zh-CN.json is the only file touched. No Go, template or
JavaScript edits.

Scope

36 new keys:

Prefix Keys Covers
settings.section.* 16 The Settings navigation itself — every section name and description
settings.expectations.* 6 Post-apply checks: heading, rollback toggle and its help text
settings.theme.* 5 The colour-theme option names
settings.* (shared) 9 Settings heading, Save … settings button, saved/applied messages, nav aria label

Catalog goes from 63 shipped keys to 99 keys (32% of English). The
rest stays English by design, so nothing breaks.

Merge order (please read)

This diff is a snapshot of the whole file, so besides its own 36 keys it
contains the settings.default_language.auto wording fix that #131 also carries
(否则用英文 → 否则显示英文). Every batch PR sets that line to the same value, so they
merge cleanly in any order and none of them can silently revert it.

Checklist

  • go build ./... compiles
  • go test ./internal/i18n/ ./internal/server/ -run 'Translation|Catalog|Language|Locale' passes
  • Commits are clean and the PR is focused on one concern
  • Data-only, matching docs/TRANSLATING.md
  • CHANGELOG.md / version bump — left to you, as before
  • Licensed under Apache 2.0

Notes for reviewers

  • settings.save_section is 保存{section}设置: the placeholder takes the already-translated section label, so no space is inserted around it in Chinese.
  • settings.expectations.help + _after are split around the <em> holding settings.expectations.section_name; assembled it reads 在代理主机上定义的期望项(也就是它的期望项部分)会在每次配置同步后立即运行。
  • The section labels here must match what the Go-side navigation resolves, which TestSettingsNavigationMatchesTheEnglishCatalog pins on the English side.

Verification — run against this exact file, in a Linux container (WSL):

go test ./internal/i18n/ ./internal/server/ -run 'Translation|Catalog|Language|Locale' -count=1
go build ./...

exit=0 — including TestEveryCatalogMatchesEnglishKeysAndPlaceholders and
TestEveryTranslationKeyUsedExistsInEnglish. Same as #131.

One note if you ever test on Windows: a plain checkout there fails
internal/caddy's TestBuildProxyRouteGolden, because that test compares bytes and
core.autocrlf makes the testdata/*.json golden files CRLF on disk while the
generated JSON is LF. It reproduces on an untouched main, so it is unrelated to this
PR — it is just why the run above is documented as Linux.

The pr2 log of that run is kept locally if you want it pasted here.

Catalog facts

  • 99/99 keys valid; no key English does not have; no duplicate keys
  • Placeholders identical to English on every key
  • No empty values; UTF-8 without BOM; LF; no HTML in any value

`settings.section.*` — The Settings navigation itself — every section name and description
`settings.expectations.*` — Post-apply checks: heading, rollback toggle and its help text
`settings.theme.*` — The colour-theme option names
`settings.*` (shared) — Settings heading, *Save … settings* button, saved/applied messages, nav aria label

Data-only: web/i18n/zh-CN.json is the only file touched.

The diff also carries the settings.default_language.auto wording fix from X4Applegate#131
(otherwise this snapshot would revert it). All the batch PRs change that same line
to the same value, so they merge cleanly in any order.
@X4Applegate
X4Applegate merged commit 80c06e7 into X4Applegate:main Oct 10, 2026
6 checks passed
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.

2 participants