Repository navigation
i18n(service-messaging): ship the notification objects and digest heading in zh-Hant, ar, fr and pt-BR (第 5 包的 A 半) - #30638
Conversation
…ding in zh-Hant, ar, fr and pt-BR Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Utp6Cai5CRdAs4u9gTipWU
…s changeset Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Utp6Cai5CRdAs4u9gTipWU
📓 Docs Drift CheckThis PR changes 1 package(s): 8 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 5 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 6 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 fe0852dd6d67ad0d7243ac96f3e531e272e792f0 && git checkout fe0852dd6d67ad0d7243ac96f3e531e272e792f0
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 482e089a14bb1ca5a5abccb5ea8bb13f27b28db8 91247933f40d2cef2a8ec0118eed28ba2c19dd25 && git checkout -B drift-repro 482e089a14bb1ca5a5abccb5ea8bb13f27b28db8 && git merge --no-ff 91247933f40d2cef2a8ec0118eed28ba2c19dd25
node scripts/docs-audit/affected-docs.mjs --json 482e089a14bb1ca5a5abccb5ea8bb13f27b28db8
|
|
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 — 第 5 包的 A 半 (package 5 of 11,
@objectstack/service-messaging, first half:zh-Hant,ar,fr,pt-BR). The B half (ru,de,ko) follows as its own PR; the card stays open until the last PR of the series flips the bundle check to the platform locale table.Clause-②: no
Metadata-protocol: none
维护者速读
messages.ts的语言类型只加宽到这 4 种(B 半再加 3 种);不动逻辑、schema、接口,原有 4 种一字未改。三处测试改动都是前提变了、不是放宽(见下文)。回滚即撤 PR。src/translations/index.ts、messages.ts(阿语摘要标题用计数式写法,避开复数变化),再看keyed-notification-text.integration.test.ts。node scripts/check-i18n-bundles.mjs --filter=messaging输出 in sync;pnpm --filter @objectstack/service-messaging test全绿。What changes
TAG.objects.generated.tswith all 203 object leaves plus itsTAG.source-hashes.generated.ts, written by the repo's ownos i18n extract --fill=default --source-hashes, served throughwithSourceFallback,zh-CNahead ofzh-Hantinindex.ts.messages.ts: the digest heading in the four locales;MessagingLocalewidens to eight tags (the B half widens it to eleven), so each half is green on its own.check:i18ncovers them from this PR on.Test changes — the premise moved, nothing loosened
keyed-notification-text.integration.test.tsusedfr-FRas its recipient with no pack. Withfrshipping, that premise is false for French: the no-pack recipient and deployment default becomeit-IT(Italian is not a platform-table language) with the same assertions, including the single warning, and a new case pins afr-FRrecipient reading thefrheading (Vous avez 2 notifications).admin-copy-vocabulary.test.tsandsetup-list-empty-states.test.tslist the bundles they hold to their wording rules; the four new bundles join that list, so the rules now also cover them.Acceptance notes
en. Arabic is RTL prose with identifiers in Latin script.t()selects no plural form, so the Arabic digest heading is a tally (عدد الإشعارات لديك: {{count}}), correct for every count; the comment inmessages.tssays why.APNs,FCM,Android,iOS, and one help leaf that is a list of status codes, in every locale; beyond those, native words only:frNotifications,Partition,Source,Version,Web;pt-BRStatus,Web.pt-BRwrites the payload asCarga útilrather than the English loanword.check:i18n-stale-fillpasses with the baseline untouched.Verification
Package suite, typecheck, build (verify lock, at the rebased head)
i18n gates and size
Derived gate families (dispatch-gates --commands, reconciled with --ran): 62 run, 0 not measured, all exit 0; recorded in the os-dev-report on #30512.
Dogfood: not run — content-only package PR, no
!in the title and no(narrowing)arm.🤖 Generated with Claude Code
https://claude.ai/code/session_01Utp6Cai5CRdAs4u9gTipWU