问题
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 的分类调研。这不是语言分支问题(它连分支都没有),故单独跟踪。
问题
packages/app-shell/src/views/metadata-admin/inspectors/ObjectFieldInspector.tsx:1512字段选择器里的草稿字段,其 label 被无条件拼上中文
(草稿)。没有任何语言判断,所以英文/日文/德文用户在 Studio 里也会看到my_field (草稿)。值得一提的是,这是整个 1500+ 行文件里唯一的中文字面量——其余 101 处 UI 文案都规规矩矩走了
t(key, locale)。所以这大概率是当时顺手写下、后来没人注意到。修法
该文件已经有
localeprop 且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 的分类调研。这不是语言分支问题(它连分支都没有),故单独跟踪。