发现于 #3913 的实施过程(围栏外,PR 未夹带)。未认领,交 PM triage。
机制
#3913 修的是 previews/block-config.ts 的 curated 属性 label —— 那些 label 是表数据,现在存翻译键、渲染处过 t()。本单是另一条机制:PageBlockInspector.tsx 自己 JSX 里的硬编码英文,从来不是 block-config 的 label,#3913 的面覆盖不到。
packages/app-shell/src/views/metadata-admin/inspectors/PageBlockInspector.tsx(行号以 PR #3913 合并后为准):
:109 FieldListField 的行添加按钮 —— Plus 图标后跟裸 Add
:457 string-list 分支的行添加按钮 —— 同一个裸 Add
:101 / :450 aria-label="Remove"(两处)
:475 aria-label="Remove item"
:147 setError('Invalid JSON') —— 注意 i18n.ts 里已有 engine.form.invalidJson,且 translateValidationMessage() 已经把 'invalid json' 映射到它,所以这里是把现成的键绕过去了
:61 placeholder="snake_case object"、:98 placeholder="field name"
影响
zh-CN 管理员今天就会看到,且恰好在 #3913 修好的同一个面板里:打开任意 record:details 区块的检查器,分区标题、字段名全是中文,分区内每个字段列表下面的添加按钮却是英文 Add。同一面板两种语言 —— 与 #3913 描述的症状同类,只是残留在 chrome 上。
不是 dormant:record:details.sections.fields(field-list)、record:highlights.fields、object-grid.columns、record:quick_actions.actionNames(string-list)等都会渲染出这个按钮。
已被钉住,不会静默
PR #3913 的 inspectors/PageBlockInspector.i18n.test.tsx 里有一条用例 leaves only the known non-block-config chrome in English (objectui#3958) —— 它断言这些英文仍然存在。所以本单落地时那条用例会精确翻红,必须一并收紧,两个修复不会静默重叠。
边界与去重
一处取舍提醒
两个 Add 按钮语义上是「给这个列表加一行」,与 #3913 里 array 分支的 addLabel(每个块自己命名,如「添加分区」)不同粒度。要决定是给它们一个通用键(engine.inspector.pageBlock.field.addRow 之类)还是像 addLabel 那样按位置命名 —— 前者够用且这两处本就没有 per-field 文案,倾向前者,但属契约面小决定,本单只记录现象。
发现于 #3913 的实施过程(围栏外,PR 未夹带)。未认领,交 PM triage。
机制
#3913 修的是
previews/block-config.ts的 curated 属性 label —— 那些 label 是表数据,现在存翻译键、渲染处过t()。本单是另一条机制:PageBlockInspector.tsx自己 JSX 里的硬编码英文,从来不是block-config的 label,#3913 的面覆盖不到。packages/app-shell/src/views/metadata-admin/inspectors/PageBlockInspector.tsx(行号以 PR #3913 合并后为准)::109FieldListField的行添加按钮 ——Plus图标后跟裸Add:457string-list分支的行添加按钮 —— 同一个裸Add:101/:450aria-label="Remove"(两处):475aria-label="Remove item":147setError('Invalid JSON')—— 注意i18n.ts里已有engine.form.invalidJson,且translateValidationMessage()已经把'invalid json'映射到它,所以这里是把现成的键绕过去了:61placeholder="snake_case object"、:98placeholder="field name"影响
zh-CN 管理员今天就会看到,且恰好在 #3913 修好的同一个面板里:打开任意
record:details区块的检查器,分区标题、字段名全是中文,分区内每个字段列表下面的添加按钮却是英文Add。同一面板两种语言 —— 与 #3913 描述的症状同类,只是残留在 chrome 上。不是 dormant:
record:details.sections.fields(field-list)、record:highlights.fields、object-grid.columns、record:quick_actions.actionNames(string-list)等都会渲染出这个按钮。已被钉住,不会静默
PR #3913 的
inspectors/PageBlockInspector.i18n.test.tsx里有一条用例leaves only the known non-block-config chrome in English (objectui#3958)—— 它断言这些英文仍然存在。所以本单落地时那条用例会精确翻红,必须一并收紧,两个修复不会静默重叠。边界与去重
t()#3913。页面块检查器的 PROPERTIES 面在 zh-CN 会话下是英文的 —— curated 字段 label 走字面量、只有外围章节标题走t()#3913 是表数据 label(已修);本单是组件内 JSX 字面量。BlockPropField没有格式/校验能力位 —— 所有标识符类字段(sectionname、tabkey、accordionvalue)只能靠 placeholder 陈述约定 #3912(同文件不同缺陷:BlockPropField的格式/校验能力位)。PageBlockInspector、inspector i18n、hardcoded English aria-label),无同题单。engine.form.invalidJson已存在,Invalid JSON这条属于复用现成键而非新增翻译面 —— 修的时候别再新建键。一处取舍提醒
两个
Add按钮语义上是「给这个列表加一行」,与 #3913 里 array 分支的addLabel(每个块自己命名,如「添加分区」)不同粒度。要决定是给它们一个通用键(engine.inspector.pageBlock.field.addRow之类)还是像addLabel那样按位置命名 —— 前者够用且这两处本就没有 per-field 文案,倾向前者,但属契约面小决定,本单只记录现象。