Found while executing #3878 on branch claude/issue-3878-i18n-copy-trio. #3878 converged the ten locale packs on the typographic ellipsis … (U+2026), per the consistency pass on objectstack#6015. The metadata-admin designer does not read those packs — it carries its own flat en/zh table — so it was untouched by that pass and now spells the ellipsis the old way.
Measured
packages/app-shell/src/views/metadata-admin/i18n.ts, 10 entries, 5 keys in each of the two blocks:
| key |
en |
zh |
engine.form.select |
Select... |
请选择... |
engine.form.selectObjectDots |
Select object... |
选择对象... |
engine.form.addObjects |
Add objects... |
添加对象... |
engine.form.selectFieldDots |
Select field... |
选择字段... |
engine.form.addFields |
Add fields... |
添加字段... |
None of these keys exists in packages/i18n/src/locales/*.ts, so this is not a duplicated-copy case — it is a second, parallel translation table with its own typographic convention.
Why it is a finding and not a bug
Purely a glyph, and confined to the designer's own inspector forms. But it is same-screen visible in the same way #3878 was: the designer renders inside the console shell, so engine.form.select (Select...) sits on screen next to common.select, which #3878 just moved to Select…. Before that PR both said ... and the screen was at least self-consistent; converging the packs alone is what creates the split. Recording it so the next reader does not have to re-derive why one panel disagrees with its own chrome.
Naming the honest cost: the fix is 10 one-character edits, and it needs no gate of its own if the #3878 pin is generalised — but generalising that pin means teaching it a second table with a different shape (flat Record of dotted keys, en and zh in one file, no ten-pack parity), which is more machinery than the defect is worth today. Ten edits and a note in the table's header is the proportionate version.
Related
#3878 (the convergence and its pin, packages/i18n/src/__tests__/ellipsis-glyph-3878.test.ts, whose header already records that it deliberately scopes itself to the ten packs), objectstack#6015 (the ruling). Not an instance of the hardcoded-English family (#4028 and siblings) — these strings ARE translated, into zh, in the designer's own table; only the glyph is off.
Generated by Claude Code
Found while executing #3878 on branch
claude/issue-3878-i18n-copy-trio. #3878 converged the ten locale packs on the typographic ellipsis…(U+2026), per the consistency pass on objectstack#6015. The metadata-admin designer does not read those packs — it carries its own flaten/zhtable — so it was untouched by that pass and now spells the ellipsis the old way.Measured
packages/app-shell/src/views/metadata-admin/i18n.ts, 10 entries, 5 keys in each of the two blocks:engine.form.selectSelect...请选择...engine.form.selectObjectDotsSelect object...选择对象...engine.form.addObjectsAdd objects...添加对象...engine.form.selectFieldDotsSelect field...选择字段...engine.form.addFieldsAdd fields...添加字段...None of these keys exists in
packages/i18n/src/locales/*.ts, so this is not a duplicated-copy case — it is a second, parallel translation table with its own typographic convention.Why it is a
findingand not a bugPurely a glyph, and confined to the designer's own inspector forms. But it is same-screen visible in the same way #3878 was: the designer renders inside the console shell, so
engine.form.select(Select...) sits on screen next tocommon.select, which #3878 just moved toSelect…. Before that PR both said...and the screen was at least self-consistent; converging the packs alone is what creates the split. Recording it so the next reader does not have to re-derive why one panel disagrees with its own chrome.Naming the honest cost: the fix is 10 one-character edits, and it needs no gate of its own if the #3878 pin is generalised — but generalising that pin means teaching it a second table with a different shape (flat
Recordof dotted keys,enandzhin one file, no ten-pack parity), which is more machinery than the defect is worth today. Ten edits and a note in the table's header is the proportionate version.Related
#3878 (the convergence and its pin,
packages/i18n/src/__tests__/ellipsis-glyph-3878.test.ts, whose header already records that it deliberately scopes itself to the ten packs), objectstack#6015 (the ruling). Not an instance of the hardcoded-English family (#4028 and siblings) — these strings ARE translated, intozh, in the designer's own table; only the glyph is off.Generated by Claude Code