Skip to content

Commit 6444288

Browse files
fix(platform-objects): zh-CN organization logo label reads 徽标, not the slug-like 标识 (#26069)
<!-- claude-projects-attribution: {"github_login":"os-project-manager"} --> _Requested by **Leehom** · [project thread](https://claude.ai/code/project/chan_01TenzsRopZj4jMbvjX8uz1X?thread=cmsg_01TenzsRopZj4jMbvjX8uz1X8Km4RxN1TuQYd4JWCoys2D)_ Fixes #25629 Clause-②: no Metadata-protocol: none Claim of record: `6413940520` on the card (card thread, `domain:server` seat 2). Branch `claude/project-thread-j7jeqt` is the harness-pinned branch for this session. It names no issue, so the claim is the identity record. ## What changed - zh-CN `sys_organization.fields.logo.label`: 「标识」 → 「徽标」. 「标识」 ("identifier") sat directly beside the slug's 「标识符」 on the organization record page. - One `patch` changeset for `@objectstack/platform-objects`. ## Where the fix lives, measured - There is no upstream source for a translated leaf. `packages/platform-objects/scripts/i18n-extract.config.ts` uses each locale's committed bundle (`zh-CN.ts`, which pins `objects` to `zh-CN.objects.generated.ts`) as the merge baseline. `os i18n extract --fill=default` keeps any non-empty leaf in a non-default locale (`packages/cli/src/utils/i18n-extract.ts`, the `mergeExisting` branch). The generated file's own header says "Edit translations in place … only the leaf string values", and the source-hashes companion says "Re-translate the leaf in `LOCALE.objects.generated.ts`". - So the leaf value was re-translated in place, then the bundles were regenerated with `pnpm i18n:extract`. The regeneration round-trips it: the PR diff is that one leaf, and no other bundle byte moved (11 files rewritten, 1 changed). `pnpm check:i18n` is green on this head: `check-i18n-bundles: OK (10 package(s) — all bundles in sync, no undeclared authoring keys)`. The zh-CN source-hashes companion has no entry for this path (a legacy-trusted leaf), so it does not change. ## The rename dialog reads the field label `rename_organization` and `update_organization` declare `{ field: 'logo', defaultFromRow: true }` with no `label` of their own, and the bundle has no per-param key for them. `ui/packages/fields/src/resolveActionParams.ts` resolves a field-backed param with no authored label as `ctx.fieldLabel(ownerName, param.field, field.label)`, the field's translated label. The dialog's logo param therefore reads 「徽标」. ## Other locales - ja-JP: logo 「ロゴ」, slug 「スラッグ」. No collision, unchanged. - es-ES: logo 「Logotipo」, slug 「Slug」. No collision, unchanged. - No other bundle in the tree labels a logo field 「标识」 (`git grep` over every translation bundle). ## Verification (head `ad0c80bad`) - `pnpm --filter @objectstack/platform-objects test`: Test Files 96 passed, Tests 1361 passed. `typecheck` exit 0 (both under `os-verify-lock`, VERDICT command-exit 0). - `pnpm check:i18n` exit 0, before and after the change. - `dispatch-gates --commands`: 61 derived, 60 run with exit 0, 1 NOT MEASURED (`check:dual-build-cjs-loads` exit 3, needs a full build; CI Build Core covers it). `check-plugin-teardown-shape --self-test` was first exit 3 on the shallow clone and exit 0 after fetching its control commit. - Root `eslint --no-inline-config` on the changed file exit 0. `check-platform-checklist --changed-from origin/main` exit 0. - No test pins the old label. No new test: this is copy, and nothing parses it. ## Acceptance notes - The dispatch order asked for the fix "at the source the generated bundle is built from" and no hand edit of the generated file. For a translated leaf, that source is the leaf in the generated file itself (above). The change was made through that route and proved by regeneration, not by editing structure. --- _Generated by [Claude Code](https://claude.ai/code/session_01AC5Hv4wkbk1cZJWec3VJtt)_ 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01AC5Hv4wkbk1cZJWec3VJtt Co-authored-by: Claude <noreply@anthropic.com>
1 parent 9753d16 commit 6444288

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
'@objectstack/platform-objects': patch
3+
---
4+
5+
fix(platform-objects): the zh-CN label for an organization's logo reads 「徽标」, no longer 「标识」, which read as the slug (「标识符」) on the same record page and in the Rename Organization dialog
6+
7+
Clause-②: no
8+
Metadata-protocol: none
9+
10+
`sys_organization.fields.logo.label` in the zh-CN bundle was 「标识」 ("identifier"), directly beside the slug's 「标识符」. The Rename Organization and Edit Organization dialogs take their `logo` param label from this field label, so a zh-CN admin read the logo URL input as the organization's identifier. ja-JP (「ロゴ」 / 「スラッグ」) and es-ES (「Logotipo」 / 「Slug」) had no such collision and are unchanged.

‎packages/platform-objects/src/apps/translations/zh-CN.objects.generated.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ export const zhCNObjects: NonNullable<TranslationData['objects']> = {
535535
help: "适合 URL 使用的标识符"
536536
},
537537
logo: {
538-
label: "标识"
538+
label: "徽标"
539539
},
540540
metadata: {
541541
label: "元数据",

0 commit comments

Comments
 (0)