You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Activity
fix(i18n): retire four hand-rolled zh/en branches (#2871, part 1) (#2887
fix(i18n): delete the four `pick({en,zh})` clones (#2871, part 2) (#2893
os-zhuang commentedon Jul 28, 2026
分类调研完成,7 个真 bug 已全部修完
原 issue 说"14 个文件手搓 zh 判断",逐个读过之后:只有 7 个是真 bug,其余 7 个要么是合法的语言检测,要么根因不在这些文件里。
已修(2 个 PR)
#2887(part 1)
components/custom/RecordTitleChip.tsxenvironment/EnvironmentListToolbar.tsxenvironment.*studio-design/StudioAiCopilot.tsxmetadata-admin/StudioHomePage.tsxrelativeTime改用Intl.RelativeTimeFormat,0 条新键换来全部 10 语 + 正确复数#2893(part 2) — 删掉 4 份完全相同的
pick()克隆及其I18n类型别名,28 条文案迁入语言包(excelImport8 /cloudOnboarding5 /aiModelStatus11 /chatbotQuota4),全部 10 语。判定为「不要动」的(附理由)
chrome/LoadingScreen.tsxzhLocale.console)不是内联文案;而且是 i18next 初始化之前的启动画面,用 hook 会导致白屏。唯一缺陷是只判断了 zh,ja/ko/de 启动瞬间看到英文——建议改成按两字母前缀索引builtInLocales,4 行的事console/ai/conversationLanguage.tsrenderers/layout/containers.tsxKNOWN_LABEL_DICT规范化的是作者写在 schema 里的数据(把硬编码的"Details"映射到当前语言),不是组件自己的文案;:185的'与'是真实的 CJK 排版规则。但这里有个独立缺陷::451/:637用useObjectTranslation().language,而translateLabel内部又自己去读document.documentElement.lang,两个语言源可能不同步metadata-admin/i18n.tsObjectFieldInspector/ObjectFormCanvasObjectFormCanvas1360 行里 0 个中文字面量),isZh只是在读previews/field-types.ts的labelZh。根因是那个数据目录,修它能一次消掉两个文件的isZh关于
metadata-admin/i18n.ts,我要更正一个早先的判断我一开始看到它的头注释写着"until the platform's
setup.translation.tsships zh-CN coverage",就去 framework 侧核实,确认 zh-CN 元数据类型标签确实已经发了,于是判断"可以退休一半"。这个结论下早了。 完整数据:该文件 1375 个键、~1255 个调用点分布在 74 个文件,全是 Studio 管理端词汇(
engine.studio.*412、engine.inspector.*213…),与主语言包几乎零重叠。TYPE_LABELS只占很小一块。更关键的是
t(key, locale)是纯函数,locale 作为 prop 穿过 inspector/preview 的注册表契约,还有 3 个非组件模块(package-schema.ts、flow-sim-validate.ts、flow-ref-check.ts)在调用——它们没法用 hook。合并意味着改 1255 个调用点 + props 契约,是数周级重构。结论:保留,不合并。 建议三件小事代替:①更新那段过期的头注释;②补 en↔zh parity 测试(白名单 44 个刻意只有 zh 的
flowNode.*键);③补一个 ADR,免得这个文件反复被人重新讨论。顺带发现,已单独开 issue
ChatbotEnhanced约 20 处无条件中文(英文用户直接看到中文),其中:2348还把中文当作发给 agent 的消息ObjectFieldInspector:1512无条件拼接(草稿)CloudAiModelStatus:149服务端report.summary未本地化还剩
field-types.ts数据目录(46 个labelZh+ 9 个分类)→ 消掉 完善设计器的每一个细节 #9/[WIP] Enhance every detail of the designer #10 的isZhcontainers.tsx的双语言源不同步LoadingScreen的两语言塌缩要不要把这三条也做掉、还是留给后续?
Generated by Claude Code
fix(i18n): close the last three zh-branch gaps (#2871, part 3) (#2898)
os-zhuang commentedon Jul 28, 2026
收尾:三个 PR 已全部合并,建议关闭
命中文件从 14 个降到 4 个,剩下的 4 个都是先前定性过的有意保留项,不是漏改。
pick({en,zh})克隆删除part 3 的三处各需不同解法
LoadingScreen— 启动闪屏本来就在选真语言包,但走的是lang.startsWith('zh') ? zh : en,把 10 种语言压成 2 种。改为按两字母前缀索引builtInLocales。逐字段回退en是关键:console.*正是 语言包 key 缺口:8 个语言各缺 357–359 键,74 键只存在于 zh.ts,且没有任何 parity 测试 #2872 (a) 里落后的命名空间之一,整对象替换会在闪屏上渲染出undefined而不是英文。console.loadingHint8 个语言包都缺,一并补上。containers.tsx— 调用点从useObjectTranslation()拿language,而translateLabel内部又自己detectLocale()读 DOM。两者独立更新,应用内切语言后标签和周围 chrome 可能不同语言。现在把language传进去,删掉detectLocale。field-types.ts—FieldTypeMeta的labelZh列从结构上就把字段类型选择器锁死在中英文。46 个类型名 + 9 个分类名迁入 Studio 词表(engine.fieldType.<id>/engine.fieldCategory.<cat>,由现有值生成,没有任何措辞变动),同时移除了ObjectFieldInspector和ObjectFormCanvas两处isZh。顺带修掉一个搜索过滤器 bug:它只匹配id/ 英文 label /labelZh,日语德语搜索必然无结果。剩余 4 个
zh分支 —— 均为有意保留console/ai/conversationLanguage.tsmetadata-admin/i18n.tscontainers.tsxbase === 'zh'是zh-CN基语言回退;'与'vs' & '是连接词本地化,不是双语分支plugin-chatbot/ChatbotEnhanced.tsx{message, messageEn}二元组,客户端只能二选一。横幅自身的文案已改走语言包,剩下的要在服务端改第 3 步(防复发)已落地
eslint-rules/no-try-catch-around-hook.js之外,startsWith('zh')式分支的防线通过各语言包的 parity 测试建立:新增命名空间若只补 en/zh 会直接红。所有新命名空间(cloudConnection、auth.remediation、auth.layout、environment、excelImport、cloudOnboarding、aiModelStatus、chatbotQuota)都是一次补齐 10 个语言包,没有扩大 #2872 (a) 的缺口。7 个真实缺陷已全部修复,建议关闭本 issue。翻译内容本身的缺口(8 个语言包约 357 个 key)在 #2872 (a) 跟踪,那个需要先定翻译策略。
Generated by Claude Code
fix(i18n): unconditional Chinese in the chatbot confirm card and fiel…