Repository navigation
i18n(plugin-approvals): ship the approval objects, notifications, record page and e-mail link line in zh-Hant, ar, fr and pt-BR - #30790
Conversation
…ord page and e-mail link line in zh-Hant, ar, fr and pt-BR Four new locales for sys_approval_request, sys_approval_action and sys_approval_delegation (generated and hashed by the repo's own extract), the approval notification messages, the record page's label and its Details / Timeline tabs, and the line that opens an approval from its e-mail (APPROVAL_EMAIL_LINK_LINES). Registered in index.ts under the platform-table tags (zh-CN before zh-Hant) and in the extract command + merge baseline. The e-mail templates' shape, the template selection and EMAIL_TEMPLATE_FLOOR_LOCALE are unchanged. The per-locale tests list the four new locales. Carried unchanged from the released handover commit 7db48bd (written by session_01Utp6Cai5CRdAs4u9gTipWU). Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cya5ej5GQV86RPbRPK
📓 Docs Drift CheckThis PR changes 1 package(s): 7 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 4 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 da2b51956b527699104b40d9e195aa8de4522402 && git checkout da2b51956b527699104b40d9e195aa8de4522402
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 612468cc20e4d4adeba047d2416126ec9a8cc077 0ac1f7dd06ae8a45f1cdf1d70edde9f2b9178d1d && git checkout -B drift-repro 612468cc20e4d4adeba047d2416126ec9a8cc077 && git merge --no-ff 0ac1f7dd06ae8a45f1cdf1d70edde9f2b9178d1d
node scripts/docs-audit/affected-docs.mjs --json 612468cc20e4d4adeba047d2416126ec9a8cc077
|
…h "os "
check-cli-command-ids reads a quoted string that opens with `os ` and a
lowercase word as a command id, so the pt-BR clause
approvalAdminRescueFallbackUnresolved ('os fallbackApprovers declarados
também não…') was taken for the command `os fallback` and refused. The
clause is lowercase by design (it is joined mid-sentence after the
separator), so it is reworded to 'tampouco os fallbackApprovers
declarados corresponderam a ninguém', which keeps the "either" of the
English and no longer opens with the article.
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-06T03:48Z · #30512 (package 9 of 11, plugin-approvals, first half)Head-sha: 0ac1f7d
|
Requested by Elon · project thread
domain:server#1 · os-elon-musk · session_016WV4cya5ej5GQV86RPbRPK
Part of #30512 — package 9 of 11, first half (
@objectstack/plugin-approvalsinzh-Hant,ar,fr,pt-BR). The card stays open: the second half (ru,de,ko), settings 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
维护者速读
EMAIL_TEMPLATE_FLOOR_LOCALE都没动,只给「打开审批」那一行加了 4 种语言(按裁决 A)。原有 4 种语言一字未改。测试改动只是各语言测试把 4 种新语言加进列表(覆盖变宽,没有放宽任何断言)。回滚即撤 PR。src/translations/index.ts(按表标签注册,zh-CN 在 zh-Hant 前,每种语言带页面标题和消息)、src/approval-email-templates.ts的APPROVAL_EMAIL_LINK_LINES、src/translations/messages.ts,再看sys-approval-request-page.test.ts。node scripts/check-i18n-bundles.mjs --filter=approvals输出plugins/plugin-approvals in sync;pnpm --filter @objectstack/plugin-approvals test全绿。What changes
zh-Hant,ar,fr,pt-BR): each aTAG.objects.generated.tswith all 164 object leaves ofsys_approval_request,sys_approval_actionandsys_approval_delegation, 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.ts(the 40 approval notification sentences;approvalMessageswidens to eight locales),pages.ts(the record page labelsys_approval_request_detail, recorded against the sameendigest the existing three carry), and the record page's inline Details / Timeline labels insys-approval-request.page.ts.approval-email-templates.ts:APPROVAL_EMAIL_LINK_LINES(the line that opens the request from its e-mail,{{approvalUrl}}kept byte-identical) gains the four locales. This follows the seat's ruling A, as recorded in the handover commit7db48bdd: the link line is added per locale; the e-mail templates' shape, the template selection andEMAIL_TEMPLATE_FLOOR_LOCALEare unchanged.scripts/i18n-extract.config.tslists the four tags and its merge baseline imports the four bundles with their page entries, socheck:i18ncovers them from this PR on.Tests
sys-approval-request-page.test.tspins the served locale set; it now lists the eight locales this PR serves, and every served locale is still held to carrying the authored page label.approval-status-vocabulary.test.ts,approve-decision-question.test.ts,decision-question-i18n.test.ts,success-copy-names-request-i18n.test.tsandadmin-copy-vocabulary.test.tsadd the four new bundles to their locale lists. Coverage widens; no assertion changed.Acceptance notes
enfor the object bundles and formessages.ts(key set,{{holes}},{holes}, backtick spans, angle tokens: all four locales OK, zero diffs). Arabic is RTL prose with identifiers left in Latin script.zh-Hantwas checked character by character against OpenCC's Traditional (Taiwan) conversion: no Simplified-only character remains (核准 keeps 准, the Taiwan usage).frSource,Note,Action;pt-BRStatus. All are the native words. Inmessages.ts,pt-BR's reason separator"; "equals the English one.check:i18n-stale-fillpasses with the baseline untouched.7db48bdd(sessionsession_01Utp6Cai5CRdAs4u9gTipWU): the patch id of this PR's diff equals that commit's (7e31c844). The serial row "after Setup: replace developer wording and hand-written JSON with fields a business administrator can use #30208 lands" was cleared by the seat (6672288503): Setup: replace developer wording and hand-written JSON with fields a business administrator can use #30208's rows that touch this package landed in PR fix: Setup form help speaks to an administrator; queue pages, mail status banner and test toast read in Chinese #30551.ja-JP/es-ESbundles still carry English source copies onsys_approval_delegation; this PR does not touch the existing three locales.Verification
Package suite, typecheck, build (verify lock)
i18n gates and the derived families
The branch is one commit on
main561d532c(after #30767 landed). Its diff has the same patch id (7e31c844) as4a8b606d, where the derived families ran on mainadf6ee09; none of the six main commits in between touchesplugin-approvals. The package suite and both i18n checks were re-run on this head.Dogfood: not run — content-only package PR, no
!in the title and no(narrowing)arm.Generated by Claude Code