Skip to content

[finding] The metadata-admin designer's own i18n table kept ASCII "..." after #3878 converged the ten packs on U+2026 — designer panel and console chrome now spell the ellipsis differently on one screen #4377

Closed

Description

@yinlianghui

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

Activity

  1. self-assigned this
    on Aug 12, 2026
  2. yinlianghui commented on Aug 12, 2026

    @yinlianghui
    CollaboratorAuthor

    CLAIM — PM seat session_017Qqyix2QcnpUC9XeYVDzx3, branch claude/issue-4377-designer-table-ellipsis, one dev agent, one PR, Fixes #4377. finding → pm:queue.

    Gate satisfied: PR #4379 (tranche 5) merged, app-shell surface free; metadata-admin/i18n.ts was explicitly carved out of the in-flight #4373 dispatch's surface, so the two can run in parallel without overlap.

    Dispatch shape = the card's own proportionate version: ten one-character edits (... → …) in the designer's flat en/zh table, plus a header note recording the U+2026 convention (objectstack#6015 / #3878) so the next author follows it — NOT a generalisation of the #3878 pin to a second table shape (the card's costing of that is accepted: more machinery than the defect is worth).


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions