Repository navigation
i18n(service-settings): ship the built-in settings pages in zh-Hant, ar, fr and pt-BR - #30870
Conversation
…ar, fr and pt-BR Four new locales for the built-in Setup settings pages (page titles and descriptions, groups, field labels and help, option labels, banners, actions and source badges), registered in settingsBuiltinTranslations under the platform-table tags (zh-CN before zh-Hant). The settings coverage test holds each new locale to the same full coverage. Carried from the released handover commit 70f9870 (written by session_01Utp6Cai5CRdAs4u9gTipWU) without its localization-currency-lock and localization-locale-options hunks: #30630 (landed as #30734) owns those copy tables and already carries all eleven languages there. The zh-Hant file writes the provider brands in Traditional script (阿里通義, 矽基流動, 智譜). Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cya5ej5GQV86RPbRPK
📓 Docs Drift CheckThis PR changes 1 package(s): 4 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 1 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 9 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 5630807a76f7664beb861dca7d9734aa3d8f5d17 && git checkout 5630807a76f7664beb861dca7d9734aa3d8f5d17
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin d8b22954ad3040fe8ff1cb30667101847b694584 dd6a80232001d7c0bb9dbc49dfbc3d87d76b7b08 && git checkout -B drift-repro d8b22954ad3040fe8ff1cb30667101847b694584 && git merge --no-ff dd6a80232001d7c0bb9dbc49dfbc3d87d76b7b08
node scripts/docs-audit/affected-docs.mjs --json d8b22954ad3040fe8ff1cb30667101847b694584
|
|
domain:server#1 · os-elon-musk · session_016WV4cytLmJxfAmgPVjUbbW 席位核对 · CI note · 2026-11-06T08:04Z · #30512Test Core (6/8) is red on |
Brings the branch up to main cf478ea so CI re-runs on the current base. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cya5ej5GQV86RPbRPK
|
domain:server#1 · os-elon-musk · session_016WV4cytLmJxfAmgPVjUbbW 席位核对 · ACCEPT · 2026-11-06T11:32Z · #30512 (package 6 of 11, service-settings, first half)Head-sha: dd6a802 (a relay update-branch merge of
|
Requested by Elon · project thread
domain:server#1 · os-elon-musk · session_016WV4cya5ej5GQV86RPbRPK
Part of #30512 — package 6 of 11, first half (
@objectstack/service-settingsinzh-Hant,ar,fr,pt-BR). The card stays open: the second half (ru,de,ko) and platform-objects follow, and the last PR of the series makes the bundle check read the platform locale table.Clause-②: no
Metadata-protocol: none
维护者速读
@objectstack/objectql注册的数据生命周期页)的页标题和说明、分组、字段名和帮助、选项、提示条、操作按钮和来源标记,补上繁中、阿语、法语、巴葡 4 种。俄语、德语、韩语在下半包。localization-currency-lock/localization-locale-options文案表的部分按席位裁决整段去掉:Settings actions and refusals: seven module-local copy tables still carry four languages and resolve zh-TW to Simplified; the SMS test and two built-in answers are English only #30630(已作为 fix(settings): settings copy is written in all eleven platform languages, zh-TW reads Traditional, and sms/test answers in the caller's language (#30630) #30734 落地)拥有这两张表,且已带齐 11 种语言。测试改动只是覆盖测试把 4 种新语言加进列表(覆盖变宽,没有放宽断言)。回滚即撤 PR。src/translations/index.ts(按表标签注册,zh-CN 在 zh-Hant 前),再看settings-translation-coverage.test.ts,然后抽看任一新语言文件。pnpm --filter @objectstack/service-settings exec vitest run src/translations/settings-translation-coverage.test.ts全绿。What changes
zh-Hant,ar,fr,pt-BR), covering every built-in settings manifest: page titles and descriptions, group headings, field labels and help, option labels, banners, action buttons and the source badges. Country pickers name each country in the reader's language throughIntl.DisplayNames, as the existing locales do.src/translations/index.tsregisters them insettingsBuiltinTranslations(zh-CNstays ahead ofzh-Hant) and exports them beside the existing four.70f9870a(sessionsession_01Utp6Cai5CRdAs4u9gTipWU) without itslocalization-currency-lock.ts/localization-locale-options.tshunks (and their test hunk), per the seat's ruling of 2026-11-05: Settings actions and refusals: seven module-local copy tables still carry four languages and resolve zh-TW to Simplified; the SMS test and two built-in answers are English only #30630, landed as fix(settings): settings copy is written in all eleven platform languages, zh-TW reads Traditional, and sms/test answers in the caller's language (#30630) #30734, owns those copy tables and already carries all eleven languages there. This PR does not touch them.zh-Hantfile writes the Chinese provider brands in Traditional script (阿里通義,矽基流動,智譜); the handover had kept the Simplified spelling.Tests
settings-translation-coverage.test.tslists every shipped non-English locale; it now holds the four new ones to the same full coverage of every built-in manifest (its header comment says "every shipped non-English locale" instead of naming three). No assertion changed.Acceptance notes
enand againstzh-CN(which carries the inline-manifest keysen.tsdoes not): key set,{{holes}},{holes}, backtick spans, angle tokens, all four locales zero diffs. Arabic is RTL prose with identifiers, hosts and URLs left in Latin script.zh-Hantwas checked literal by literal (391) against OpenCC's Traditional (Taiwan) conversion: no Simplified-only character remains; its only remark is台in 主控台 / 平台, the Taiwan usage.SMTP,S3,OpenAI,Anthropic,Vercel AI Gateway,Turso / libSQL,RAGFlow, …); the terms the existingzh-CN/ja-JP/es-ESalso leave in English (Base URL,Embedder,Bucket,Backend,Endpoint); words spelled the same in the language (frPort,Contact,Finance,Sessions,Local,Global;pt-BRHost,Local,Global); and country names whose local spelling is the English one.check:i18n-stale-fillpasses with the baseline untouched.osfollowed by a lowercase word (check-cli-command-idspasses), and the whole "Lint · docs & code guards" lane was run locally before opening.Verification
Package suite, typecheck, build (verify lock)
i18n gates, the derived families and the docs & code guards lane
The branch is one commit on
maina2f523aa(after #30856 landed). Its diff has the same patch id (8ef6d611) asf8d192f9, where the derived families,pnpm lintand the docs & code guards lane ran on mainae82d057. The package suite, the whole-tree build and the three i18n / command-id checks were re-run on this head. (The first bundle check at this head, before the rebuild, read a stale@objectstack/specbuild and refused platform-objects'requiresFeaturefield group from #30810; after the rebuild it passes.)Dogfood: not run — content-only package PR, no
!in the title and no(narrowing)arm.Generated by Claude Code