Skip to content

ObjectFieldInspector 草稿字段选项无条件拼接中文「(草稿)」 #2885

Description

@os-zhuang

问题

packages/app-shell/src/views/metadata-admin/inspectors/ObjectFieldInspector.tsx:1512

byName.set(name, { value: name, label: `${name} (草稿)` });

字段选择器里的草稿字段,其 label 被无条件拼上中文 (草稿)。没有任何语言判断,所以英文/日文/德文用户在 Studio 里也会看到 my_field (草稿)。

值得一提的是,这是整个 1500+ 行文件里唯一的中文字面量——其余 101 处 UI 文案都规规矩矩走了 t(key, locale)。所以这大概率是当时顺手写下、后来没人注意到。

修法

该文件已经有 locale prop 且 t(key, locale) 用得很熟,所以是一行的事:在 Studio 自己的词表(packages/app-shell/src/views/metadata-admin/i18n.ts)加一个 key(例如 engine.inspector.draftSuffix),然后

label: `${name} ${t('engine.inspector.draftSuffix', locale)}`

Studio 词表是 en/zh 双语的,补两条即可。

顺带

现有测试 ObjectFieldInspector.test.tsx 只在 locale={'en-US'} 下渲染(:57, :129, :421),zh 分支完全没覆盖——所以这类问题不会被现有测试拦住。修的时候建议补一条断言:英文 locale 下 label 不含 CJK 字符。

发现来源:objectui#2871 的分类调研。这不是语言分支问题(它连分支都没有),故单独跟踪。

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions