Repository navigation
i18n(plugin-sharing): ship the sharing and queue objects in all eleven platform languages - #30767
objectstack-fleet[bot] wants to merge 1 commit into
Conversation
…n platform languages Seven new locales (zh-Hant, ar, fr, pt-BR, ru, de, ko) for sys_record_share, sys_sharing_rule, sys_share_link, sys_queue and sys_queue_member: 151 object leaves each, generated and hashed by the repo's own extract, registered in index.ts under the platform-table tags (zh-CN before zh-Hant) and in the extract command + merge baseline, so check:i18n covers them. The recipient-vocabulary consistency test scans the seven new bundles. Carried from the released handover commit ec0e96d (written by session_01Utp6Cai5CRdAs4u9gTipWU). Main gained the sys_queue record page (#30728) after that commit, with a hand-authored pages section in four locales; the seven locales are wired through it here too: pages.ts gains a label per new locale (the locale's own sys_queue object label, recorded against the same en digest), and index.ts / the extract config pass each locale's pages entry like the existing three. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cya5ej5GQV86RPbRPK
📓 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:
⛔ 7 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 11 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 92f33fcf15c4732289f90d6b57f0ad1f13fc1dcc && git checkout 92f33fcf15c4732289f90d6b57f0ad1f13fc1dcc
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin adf6ee0948d8dd8e747678e6d5107e0c4a86bb31 dc12d9dc6b0a9c7bd1db50291ff3b086a1f40b93 && git checkout -B drift-repro adf6ee0948d8dd8e747678e6d5107e0c4a86bb31 && git merge --no-ff dc12d9dc6b0a9c7bd1db50291ff3b086a1f40b93
node scripts/docs-audit/affected-docs.mjs --json adf6ee0948d8dd8e747678e6d5107e0c4a86bb31
|
|
domain:server#1 · os-elon-musk · session_016WV4cytLmJxfAmgPVjUbbW 席位核对 · ACCEPT · 2026-11-06T02:09Z · #30512 (package 8 of 11, plugin-sharing)Head-sha: dc12d9d
|
Requested by Elon · project thread
domain:server#1 · os-elon-musk · session_016WV4cya5ej5GQV86RPbRPK
Part of #30512 — package 8 of 11 (
@objectstack/plugin-sharing). The card stays open: approvals, 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
维护者速读
src/translations/index.ts(按表标签注册,zh-CN 在 zh-Hant 前,每种语言带上页面标题)、src/translations/pages.ts(手写的队列页标题表),再看recipient-vocabulary-consistency.test.ts,最后抽看任一语言的sys_queue段。node scripts/check-i18n-bundles.mjs --filter=sharing输出plugins/plugin-sharing in sync;pnpm --filter @objectstack/plugin-sharing test全绿。What changes
zh-Hant,ar,fr,pt-BR,ru,de,ko): each aTAG.objects.generated.tswith all 151 object leaves ofsys_record_share,sys_sharing_rule,sys_share_link,sys_queueandsys_queue_member, 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.src/translations/pages.ts(the queue record pagesys_queue_detail, from feat(service-settings,plugin-audit,plugin-sharing): config_change rows name their settings row; record pages for audit rows and queues #30728) gains an entry per new locale. Each value is the locale's ownsys_queueobject label, so the page title and the object read the same word, and each records the sameendigest the existing three carry.index.tspasses each new locale'spagesentry and its recorded digest towithSourceFallback, like the existing three.scripts/i18n-extract.config.tslists the seven tags and its merge baseline imports the seven bundles with their page entries, socheck:i18ncovers them from this PR on.Tests
recipient-vocabulary-consistency.test.ts(each recipient option reads the same on every object that offers it, within a locale) adds the seven new bundles to its list. Coverage widens; no assertion changed.sys-queue-page.test.tsalready iterates every locale ofSharingTranslationsand checks the served page label equals the table's, so the seven new page labels are held to it with no test edit.Acceptance notes
en(key set,{{holes}},{holes}, backtick spans, angle tokens: all seven 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.frSource,Description(x2),Audience,Public (indexable);pt-BRToken;deName(x2),Team(x2),Position(x3),Token. All are the native words.check:i18n-stale-fillpasses with the baseline untouched.src/sys-queue.page.tsis an inline locale map with four entries (en,zh-CN,ja-JP,es-ES), none for the seven new locales. It is page prose outside this PR's surface.ec0e96dc(sessionsession_01Utp6Cai5CRdAs4u9gTipWU), with one addition: main gained the queue record page and its hand-written four-localepagessection (feat(service-settings,plugin-audit,plugin-sharing): config_change rows name their settings row; record pages for audit rows and queues #30728) after that commit was written, so the commit'sindex.tsand extract-config hunks conflicted. The resolution keeps feat(service-settings,plugin-audit,plugin-sharing): config_change rows name their settings row; record pages for audit rows and queues #30728's wiring and adds the seven locales through it, which needed the seven page labels inpages.ts. The 14 generated bundle and source-hash files and the test change are byte-identical to the handover commit (blob ids compared); the changeset gains one sentence for the page title. 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 row 7, which first putsys_queue/sys_queue_memberinto this package's extract, landed in PR fix: Setup form help speaks to an administrator; queue pages, mail status banner and test toast read in Chinese #30551.Verification
Package suite, typecheck, build (verify lock)
i18n gates and the derived families
The branch is one commit on
maine00bcc6a(after #30744 landed). Its diff has the same patch id (3f616c44) ascb13b51f, where the derived families ran on maine8dc4833; none of the five main commits in between touchesplugin-sharing(they are #30744 itself, #30734 in service-settings, plugin-auth, plugin-email and service-sms, and three in cloud-connection, the dispatch skill and the UI packages). The package suite and both i18n checks were re-run on this head's tree.Dogfood: not run — content-only package PR, no
!in the title and no(narrowing)arm.Generated by Claude Code