在实施 #3402(PR #3403,给注册路径的 FullscreenFieldEditor 补 disabled)时发现,未在该 PR 内修改 —— #3402 的文件面裁定只含 disabled 闸门,这是同一文件上的另一条独立缺陷。
现象
同一个「全屏编辑长文本」功能有两条渲染路径,内置分支已经国际化,注册路径全是英文字面量:
packages/fields/src/widgets/FullscreenFieldEditor.tsx:
:197aria-label={ + 反引号 Edit ${label ?? 'text'} fullscreen + 反引号 —— 展开按钮的可访问名:209{label ?? 'Edit text'} —— 对话框标题的兜底:216Cancel:224Done
对照 packages/components/src/renderers/form/form.tsx 的 FullscreenTextarea,四处全部走 t():
:453t('form.fullscreen.toggle', { label: label ?? t('form.fullscreen.textFallback') }):467label ?? t('form.fullscreen.title'):486t('common.cancel'):494t('form.fullscreen.done')
键已经存在,只是没人用
这不是「要新增翻译」,是已有翻译在这条路径上没被消费。form.fullscreen.* 在十个语言包里都齐全,例如 packages/i18n/src/locales/zh.ts:143:
fullscreen: {
title: '编辑文本',
description: '编辑完整的文本内容,然后保存或取消更改。',
done: '完成',
toggle: '全屏编辑{{label}}',
textFallback: '文本',
},
common.cancel 同样早已存在。
可达性
不是死代码。ObjectForm 在 mobile.fullscreenLongText 打开时给每个长文本字段盖 mobile_fullscreen,field:textarea → TextAreaField、field:markdown / field:html → RichTextField 都从这里渲染对话框。任何非英文用户在注册路径上打开全屏编辑,看到的就是 Cancel / Done 两个英文按钮,而同一个表单里内置分支渲染的长文本字段显示的是「取消 / 完成」—— 同一份表单内出现两种语言。
RichTextField 自己已经在用 useObjectTranslation(:106),所以 packages/fields 消费 i18n 没有依赖障碍;FullscreenFieldEditor 只是没接。
关联
顺带观察(未验证,勿并入严重度)
同一文件的 DialogContent 没有 DialogDescription,而内置分支有一条 sr-only 的 t('form.fullscreen.description')(form.tsx:468)—— form.fullscreen.description 这个键因此在注册路径上也是没人消费的。是否触发 Radix 的 missing-Description 警告没有实测,列在这里只是因为它与上文是同一处漂移,严重度请 triage 自行判定。
Generated by Claude Code
在实施 #3402(PR #3403,给注册路径的
FullscreenFieldEditor补disabled)时发现,未在该 PR 内修改 —— #3402 的文件面裁定只含 disabled 闸门,这是同一文件上的另一条独立缺陷。现象
同一个「全屏编辑长文本」功能有两条渲染路径,内置分支已经国际化,注册路径全是英文字面量:
packages/fields/src/widgets/FullscreenFieldEditor.tsx::197aria-label={+ 反引号Edit ${label ?? 'text'} fullscreen+ 反引号 —— 展开按钮的可访问名:209{label ?? 'Edit text'}—— 对话框标题的兜底:216Cancel:224Done对照
packages/components/src/renderers/form/form.tsx的FullscreenTextarea,四处全部走t()::453t('form.fullscreen.toggle', { label: label ?? t('form.fullscreen.textFallback') }):467label ?? t('form.fullscreen.title'):486t('common.cancel'):494t('form.fullscreen.done')键已经存在,只是没人用
这不是「要新增翻译」,是已有翻译在这条路径上没被消费。
form.fullscreen.*在十个语言包里都齐全,例如packages/i18n/src/locales/zh.ts:143:common.cancel同样早已存在。可达性
不是死代码。
ObjectForm在mobile.fullscreenLongText打开时给每个长文本字段盖mobile_fullscreen,field:textarea→TextAreaField、field:markdown/field:html→RichTextField都从这里渲染对话框。任何非英文用户在注册路径上打开全屏编辑,看到的就是 Cancel / Done 两个英文按钮,而同一个表单里内置分支渲染的长文本字段显示的是「取消 / 完成」—— 同一份表单内出现两种语言。RichTextField自己已经在用useObjectTranslation(:106),所以packages/fields消费 i18n 没有依赖障碍;FullscreenFieldEditor只是没接。关联
disabled闸门,按裁定未扩面)。FullscreenFieldEditor里接上useObjectTranslation即可独立落地,而 全屏长文本编辑器有两份实现:form.tsx 的 FullscreenTextarea 与 fields 的 FullscreenFieldEditor(合并受阻于 components ← fields 的依赖方向) #3398 本身受阻于components←fields的依赖方向。defaultProps: { submitLabel: 'Submit', cancelLabel: 'Cancel' }仍是英文字面量(本仓运行期无人读,但会绕过 #3272 的渲染期回落) #3394 —— 同族的英文字面量记录(那一条是设计器defaultProps,运行期无人读;这一条运行期有人读,用户直接看得见)。顺带观察(未验证,勿并入严重度)
同一文件的
DialogContent没有DialogDescription,而内置分支有一条 sr-only 的t('form.fullscreen.description')(form.tsx:468)——form.fullscreen.description这个键因此在注册路径上也是没人消费的。是否触发 Radix 的 missing-Description 警告没有实测,列在这里只是因为它与上文是同一处漂移,严重度请 triage 自行判定。Generated by Claude Code