Repository navigation
i18n(plugin-audit): ship the audit objects and activity sentences in all eleven platform languages - #30625
Conversation
…zh-Hant, ar, fr, pt-BR, 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): 13 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 9 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 10 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 580ec0c4f3f20a8fe590b2e82747daa2d0f041e4 && git checkout 580ec0c4f3f20a8fe590b2e82747daa2d0f041e4
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin aad1603cc2180b3eefa8cee41f5b895b8ee45909 fedf6bfd132e57e949e972b6e9fff815ddb2e726 && git checkout -B drift-repro aad1603cc2180b3eefa8cee41f5b895b8ee45909 && git merge --no-ff fedf6bfd132e57e949e972b6e9fff815ddb2e726
node scripts/docs-audit/affected-docs.mjs --json aad1603cc2180b3eefa8cee41f5b895b8ee45909
|
|
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 4 of 11 (
@objectstack/plugin-audit). 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_audit_log、sys_activity、sys_comment、sys_comment_reaction)的名称、字段、选项、帮助和视图名,以及动态流的句子(「创建了…」「更新了…」「…提到了你」),补上繁中、阿语、法语、巴葡、俄语、德语、韩语 7 种,与平台语言表的 11 种一致。fr-FR当「没有语言包」的例子,现在法语包已有,是测试的前提变了、不是放宽断言——「没有语言包时保留原句」改用it-IT验证,另加一条钉住fr-FR读到fr包。回滚即撤 PR。src/translations/index.ts(按表标签注册,zh-CN 在 zh-Hant 前)、messages.ts,再看activity-summary-reader-locale.integration.test.ts的那处改动。node scripts/check-i18n-bundles.mjs --filter=audit输出plugins/plugin-audit in sync;pnpm --filter @objectstack/plugin-audit test全绿。What changes
zh-Hant,ar,fr,pt-BR,ru,de,ko): each aTAG.objects.generated.tswith all 128 object leaves plus itsTAG.source-hashes.generated.ts, written by the repo's ownos i18n extract --fill=default --source-hashesand served throughwithSourceFallbacklike the existing three.zh-CNstays ahead ofzh-Hantinindex.ts.messages.tsgains the seven locales' activity-feed sentences (8 ids each, the same{{holes}}asen), registered as each locale'smessages.scripts/i18n-extract.config.tslists the seven tags and its merge baseline imports the seven bundles, socheck:i18ncovers them from this PR on.The one test change — the premise moved, the assertion did not loosen
activity-summary-reader-locale.integration.test.tsusedfr-FRas its example of a reader locale with no pack ("a reader locale with no template keeps the stored sentence"). Oncefrships,fr-FRresolves to it, so that premise is no longer true of French. The no-pack case now usesit-IT(Italian is not a platform-table language) and still asserts the stored English sentence byte for byte; a new case pins thatfr-FRreads thefrpack (A créé Contract « NDA »). Nothing is asserted less strictly than before.Acceptance notes
en. Arabic is RTL prose with identifiers left in Latin script.t()has no plural selection, so theru/ar"{{count}} more" sentence uses a counting form that reads correctly for every number.URLin every locale; beyond that native words only:frAction,Emoji,Import,Mentions,Type;pt-BREmoji;deEmoji,Import,Thread. The extractor records each as a source copy.pt-BRwrites sign-in/sign-out asAcesso/Encerramento de sessãorather than the English loanwords.check:i18n-stale-fillpasses with the baseline untouched.Verification
Package suite, typecheck, build (verify lock)
i18n gates
Derived gate families (dispatch-gates --commands, reconciled with --ran) are 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