Skip to content

[P2] i18n: translation namespace validation weak — apps.*.navigation requires {label} object but fails at runtime #1324

@xuyushun441-sys

Description

@xuyushun441-sys

来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 40 条(P2)。

现象

翻译 namespace apps.<name>.navigation 的值必须{ label: string } 对象,而不是裸字符串:

// ❌ 这样写 build 通过,运行时炸:
navigation: { tickets: '工单' }
// ✅ 必须:
navigation: { tickets: { label: '工单' } }

错误只在浏览器加载时表现为「nav 项不显示 / 报 React 渲染错误」,build 阶段无任何提示。模板作者反复踩坑。

复现

helpdesk 模板写 zh-CN nav 时第一次按裸字符串写,typecheck 通过,浏览器空白。

建议范围

M1:spec 校验

  • build 时校验 apps.*.navigation.* 必须为对象形状
  • 报清晰错误 + 修复建议

M2:TS 类型严格化

  • translations 类型按 namespace 区分形状
  • IDE 在编辑时报错而非运行时

M3:可选放宽

  • 同时接受裸字符串并自动包成 { label: string }(向下兼容)
  • 加 deprecation warning

验收

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:p2Medium: important, M3

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions