Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

finding(i18n): the metadata-admin engine.* namespace resolves through a module-local two-locale table (en/zh) — invisible to the ten-pack system, so eight locales get English #4662

Closed

Description

@yinlianghui

Filed by the repo:objectui seat (session session_01RnQd8iMMUwXQEV1crFmQiQ, 2026-08-14) from the objectstack#8270 half-2 measurement. Observation-class; awaiting first-touch grading.

Measured

packages/app-shell/src/views/metadata-admin/ resolves its engine.* strings through a module-local ENGINE_STRINGS_EN / ENGINE_STRINGS_ZH table read by a local t(key, locale) — not through the ten-pack @object-ui/i18n system. Consequence: every engine.* string (package management, metadata editing refusals, etc.) renders English on ar/de/es/fr/ja/ko/pt/ru consoles. The gap is namespace-wide and pre-existing; objectstack#8270's refusal key was added to the local table (consistent with its siblings — ruled option A on that card).

Disposition question for grading

Migrate the whole engine.* namespace to the ten-pack system (one card, mechanical but wide), or record the two-locale posture as deliberate for admin-facing surfaces. The i18n gates cannot see this namespace by construction (different resolution path), so whichever way it goes should be written down.

Re-check: grep -rn "ENGINE_STRINGS_EN" packages/app-shell/src/views/metadata-admin/ and count keys; check whether any engine.* key exists in the ten packs.

Activity

  1. yinlianghui commented on Aug 15, 2026

    @yinlianghui
    ContributorAuthor

    First-touch grading (repo:objectui PM seat, session session_01RnQd8iMMUwXQEV1crFmQiQ, 2026-08-15) — measured, and the measurement moves this out of delegated-dispatch range.

    Re-check results (origin/main today):

    • The table lives in packages/app-shell/src/views/metadata-admin/i18n.ts — a 4,295-line file; engine.* keys dominate it (2,667 matching lines across the en/zh tables, i.e. on the order of 1,300+ keys per locale). Zero engine.* keys exist in the ten packs, confirming the namespace is invisible to the pack system and its gates, exactly as filed.
    • New fact the card didn't have: the file's header documents the two-locale posture as a deliberate design ("Phase 3f"): the engine primarily consumes label from the server's /meta/types response; this bundle exists as a fallback for environments without translation bundles configured and as the interim source of truth for Chinese until the platform's setup.translation.ts ships zh-CN coverage. So the posture is recorded-by-design, not an accident — but the recording lives in a source comment, not in a place the i18n conventions or gates acknowledge.

    Disposition: maintainer decision box (needs-user-decision). The fork is a real product/priority call, not execution:

    • A. Record the posture — admin/engine surfaces are deliberately en/zh (server-driven labels being the primary path), written down where the i18n conventions live, revisit on a concrete non-en/zh admin demand signal. Cost ≈ zero.
    • B. Migrate the namespace to the ten packs — mechanical but very wide (1,300+ keys × 8 additional locales), contradicts the file's recorded design rationale, and duplicates strings whose primary source is the server response.

    PM recommendation: A. The measured scale makes B a feature-class investment with no demand signal, and the header shows the current shape was chosen, not drifted into. If A is ruled, the deliverable is a short paragraph in the i18n conventions doc naming the engine.* carve-out — a docs-only card this seat can dispatch on a one-line go-ahead.


    Generated by Claude Code

  2. os-zhuang commented on Aug 16, 2026

    @os-zhuang
    Contributor

    Maintainer ruling (2026-08-16, recorded by PM session session_01NYgmGheCzM6NrHZN436Cxf). The maintainer approved the report's recommendation for this card (「主线1 3 4:同意」).

    Ruled: Option A — record the two-locale posture as deliberate.

    • The engine.* namespace's en/zh module-local table is design, not drift (the file header documents server-driven label as the primary path, the local table as fallback) — the measured migration cost (1,300+ keys × 8 locales) buys nothing with zero demand signal.
    • Deliverable: a short paragraph where the i18n conventions live, naming the engine.* carve-out and its rationale (server-driven labels primary; module-local en/zh fallback; invisible to the ten-pack gates by construction), with a revisit condition: a concrete non-en/zh admin-console demand signal.
    • Docs-only card; this seat may dispatch on this ruling directly.

    First-touch grading completes with this ruling: labels flipped finding + needs-user-decision → pm:queue in the same stroke.


    Generated by Claude Code

  3. self-assigned this
    on Aug 16, 2026
  4. yinlianghui commented on Aug 16, 2026

    @yinlianghui
    ContributorAuthor

    【认领】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt)批次 13 派发,os-dev 实施(XS,docs-only)。分支:claude/issue-4662-engine-i18n-carveout。按 2026-08-16 维护者裁定(评论 5306093125,方案 A)执行:在 i18n 惯例所在文档补一段 engine.* carve-out —— 服务端 label 为主路径、模块本地 en/zh 表为兜底(Phase 3f 设计而非漂移)、按构造不进十语言包门禁;写明重启条件(出现具体的非 en/zh 管理台需求信号时重看)。⛔ 迁移任何 key;⛔ content/docs/releases/**。文件面:i18n 惯例文档一处(dev 先定位十语言包体系的惯例文档所在)+ 如有路径钉子随手核。与在飞四单零交集。


    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

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions