Repository navigation
i18n(service-realtime): ship the presence object in all eleven platform languages - #30536
Conversation
…ru, de and ko Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Utp6Cai5CRdAs4u9gTipWU
📓 Docs Drift CheckThis PR changes 1 package(s): 1 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 — 8 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 c22f43180eea1d4f625e170fc2930897edb694e9 && git checkout c22f43180eea1d4f625e170fc2930897edb694e9
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin fa9c0aa2a0a8c2752f83b57765f3aae978ae196a 28ebd23538960465127b51dce81e107659927e8a && git checkout -B drift-repro fa9c0aa2a0a8c2752f83b57765f3aae978ae196a && git merge --no-ff 28ebd23538960465127b51dce81e107659927e8a
node scripts/docs-audit/affected-docs.mjs --json fa9c0aa2a0a8c2752f83b57765f3aae978ae196a
|
|
domain:server#2 · os-bill · session_01Utp6Cbvcmv8YWFhFJwzjKL 维护者速读
席位核对 — ACCEPT · domain:server#2 · head
|
Requested by Bill · project thread
domain:server#2 · os-bill · session_01Utp6Cai5CRdAs4u9gTipWU
Refs #30512 — package 1 of 11 (
@objectstack/service-realtime). The card stays open: the last PR of the series flips the bundle check to the platform locale table.Clause-②: no
Metadata-protocol: none
维护者速读
sys_presence)的名称、字段、选项和帮助文字补上 7 种语言:繁体中文、阿拉伯语、法语、巴西葡萄牙语、俄语、德语、韩语,加上原有 4 种共 11 种,与平台语言表一致。src/translations/index.ts(新语言按表标签注册,zh-CN 排在 zh-Hant 前)、scripts/i18n-extract.config.ts(提取命令加 7 个标签),再抽看ar.objects.generated.ts。node scripts/check-i18n-bundles.mjs --filter=realtime应输出in sync (21 bundle(s))并退出 0。What changes
sys_presence, registered under the platform locale table's tags:zh-Hant,ar,fr,pt-BR,ru,de,ko. Each is aTAG.objects.generated.tswith all 25 leaves and aTAG.source-hashes.generated.tscompanion, both written by the repo's ownos i18n extract --fill=default --source-hashes, and each is served throughwithSourceFallbackexactly like the existing three.scripts/i18n-extract.config.ts(whichcheck-i18n-bundlesreads) lists the seven tags, and the config's merge baseline imports the seven bundles, so a re-extract keeps the translations and the existingcheck:i18nbundle check now covers them.index.tslistszh-CNbeforezh-Hant, so a barezh/zh-Hansrequest still expands to Simplified Chinese.zh-CN/ja-JP/es-ESfiles are untouched (no rename, no content change: the re-extract wrote them byte-identical).bundle-ownership.test.ts: one message sentence said "the four locale bundles"; now "every locale bundle".Acceptance notes
en, same backtick spans and{…}tokens per leaf). Arabic text is written as RTL prose with code identifiers (PresenceStateSchema.metadata) left in Latin script.frSession,Mobile;pt-BRStatus,Online,Offline,Desktop,Tablet;deStatus,Online,Offline,Desktop,Tablet. The extractor records those as source copies in the source-hash companions (2 entries infr, 5 each inpt-BRandde), which is the mechanism working as designed: if the English source changes, those leaves fall back to the new source rather than serve stale text.zh-CN/ja-JP/es-ESbundles still carrydisplay_title.label/.helpas English copies (two source-hash entries each). Out of this card's scope (it adds locales, it does not re-translate existing ones).Verification
Package suite, typecheck, build (verify lock)
Bundle check covers the new locales (red when one leaf is removed)
Derived gate families at head 28ebd23 (dispatch-gates --commands, reconciled with --ran)
Full record: the seat's project folder,
server-seat2/30512/gates-realtime-ran.txt.Dogfood: not run — content-only package PR, no
!in the title and no(narrowing)arm (dispatch order: package suite +check:i18n+ typecheck suffice).Generated by Claude Code