Filed by the dev on #14586 as an out-of-scope finding. Unassigned, for triage. It is filed rather than ridden along because the replacement is a Chinese wording judgement, not a mechanical edit — reasoning at the end.
The leaf
packages/platform-objects/src/apps/translations/zh-CN.metadata-forms.generated.ts:935
gap: {
label: "间距",
helpText: "栅格间距(Tailwind 单位)"
}
Its source is gap.helpText in packages/spec/src/ui/dashboard.form.ts.
|
string |
| source before #14586 |
Grid gap (Tailwind units) |
| source after #14586 |
Space between widgets, in steps of 0.25rem (4 = 1rem) |
| zh-CN leaf, unchanged |
「栅格间距(Tailwind 单位)」 |
Until that PR the zh leaf was a faithful translation. After it, the zh leaf still carries the framework vocabulary the English deliberately stopped carrying, and lacks the magnitude the English gained. A zh Studio author is left in exactly the state the upstream card exists to end.
Regeneration does not fix it — measured, not assumed
node scripts/check-i18n-bundles.mjs --write was run on that PR. It rewrote the en leaf (en is a copy of the source and is never merged) and left zh-CN untouched, exactly as the generated file header promises: merge fills gaps only, so a present-but-stale leaf is never corrected.
Both gates are GREEN over the stale leaf, exit codes captured before any pipe:
pnpm check:i18n exit 0 all bundles in sync (11 for platform-objects)
pnpm check:i18n-stale-fill exit 0 10 bundle sets, 0 stale-fill leaves, 0 baselined
check:i18n-stale-fill cannot see it by construction: it detects a stale fill from cross-locale agreement, and 「栅格间距(Tailwind 单位)」 is a real translation, not a copy of the English. Nor is there provenance to fall back on — zh-CN.source-hashes.generated.ts carries no dashboard entry at all.
Why this deserves a card rather than a line in a report
#14587 swept this exact subtree on 2026-09-03 and corrected five leaves. It correctly left gap alone, because at that moment gap was accurate. The subtree was clean for one day.
So this is not legacy debt. It is a leaf that a landed source edit turned stale with every instrument green — which is the mechanism #14931 says nothing in this repo can judge. #14931 is scoped to the 613 legacy-trusted leaves imported from a pre-consolidation vocabulary; this instance arrives by the other route (source moved under a correct translation) and may be worth attaching to it as the live worked example, since it is the first one whose exact moment of going stale is known.
Why it was not fixed in that PR
The dispatch scoped that card to the two English producer strings and explicitly forbade sweeping. Beyond scope, the replacement wording is a genuine judgement:
- objectui carries its own zh for this same field — 「组件之间的间距,数值越大越松」 at
metadata-form-i18n.ts:90 — and objectui#7369 plans to delete that overlay and consume THIS bundle instead. Whatever is written here likely becomes the Studio's zh string, so picking it inside an English prose PR would pre-empt that convergence.
- The new English carries a magnitude (one step is 0.25rem, so 4 is 1rem). A zh replacement has to decide whether to carry it; the objectui overlay currently does not. That is the same trade-off filed as objectui#7673.
Suggested, explicitly not a ruling: 「组件之间的间距,每级 0.25rem(4 即 1rem)」.
Bounded, as the sibling sweep was
columns is deliberately unchanged upstream, so 「栅格列数(默认 12)」 stays accurate. No other dashboard leaf moved. This is one leaf.
Generated by Claude Code
Filed by the dev on #14586 as an out-of-scope finding. Unassigned, for triage. It is filed rather than ridden along because the replacement is a Chinese wording judgement, not a mechanical edit — reasoning at the end.
The leaf
packages/platform-objects/src/apps/translations/zh-CN.metadata-forms.generated.ts:935Its source is
gap.helpTextinpackages/spec/src/ui/dashboard.form.ts.Grid gap (Tailwind units)Space between widgets, in steps of 0.25rem (4 = 1rem)Until that PR the zh leaf was a faithful translation. After it, the zh leaf still carries the framework vocabulary the English deliberately stopped carrying, and lacks the magnitude the English gained. A zh Studio author is left in exactly the state the upstream card exists to end.
Regeneration does not fix it — measured, not assumed
node scripts/check-i18n-bundles.mjs --writewas run on that PR. It rewrote theenleaf (en is a copy of the source and is never merged) and left zh-CN untouched, exactly as the generated file header promises: merge fills gaps only, so a present-but-stale leaf is never corrected.Both gates are GREEN over the stale leaf, exit codes captured before any pipe:
check:i18n-stale-fillcannot see it by construction: it detects a stale fill from cross-locale agreement, and 「栅格间距(Tailwind 单位)」 is a real translation, not a copy of the English. Nor is there provenance to fall back on —zh-CN.source-hashes.generated.tscarries nodashboardentry at all.Why this deserves a card rather than a line in a report
#14587 swept this exact subtree on 2026-09-03 and corrected five leaves. It correctly left
gapalone, because at that momentgapwas accurate. The subtree was clean for one day.So this is not legacy debt. It is a leaf that a landed source edit turned stale with every instrument green — which is the mechanism #14931 says nothing in this repo can judge. #14931 is scoped to the 613 legacy-trusted leaves imported from a pre-consolidation vocabulary; this instance arrives by the other route (source moved under a correct translation) and may be worth attaching to it as the live worked example, since it is the first one whose exact moment of going stale is known.
Why it was not fixed in that PR
The dispatch scoped that card to the two English producer strings and explicitly forbade sweeping. Beyond scope, the replacement wording is a genuine judgement:
metadata-form-i18n.ts:90— and objectui#7369 plans to delete that overlay and consume THIS bundle instead. Whatever is written here likely becomes the Studio's zh string, so picking it inside an English prose PR would pre-empt that convergence.Suggested, explicitly not a ruling: 「组件之间的间距,每级 0.25rem(4 即 1rem)」.
Bounded, as the sibling sweep was
columnsis deliberately unchanged upstream, so 「栅格列数(默认 12)」 stays accurate. No otherdashboardleaf moved. This is one leaf.Generated by Claude Code