Locale UI Patterns —— OpenChamber 界面文案国际化规范
为 OpenChamber 项目编写或修改任何用户可见文案时,确保每个语言的字典都拿到真正的翻译,而不是英文占位符。
该技能为纯文档型约定指南,无脚本、无网络调用、无权限要求,不涉及敏感数据或外部副作用,数据流透明。扣分点:无回滚/失效机制说明,且发布者未经注册表验证,来源归属仅依赖仓库元数据。
指令自洽、规则明确(如禁止英语占位、完整消息键等),异常输入(无法翻译时)要求显式告知用户,失败反馈清晰。扣分点:纯静态审阅,未见覆盖 i18n 关键路径的测试证据,规则可执行性未经验证复现。
description 明确列出触发场景(UI 文本、按钮、aria 标签等),边界清晰,语义触发精度高;仓库本身支持 zh-CN/zh-TW,环境适配好。扣分点:未声明非适用范围(如后端字符串、日志文案),触发条件依赖模型理解 'user-facing strings' 而非硬性边界。
结构分层好:核心规则、必做流程、组件规则、键风格、参数、完成标准,含正反示例;许可证 MIT 清晰。扣分点:技能本身无版本号或变更记录,未说明维护责任与更新路径,命名空间的'示例非穷尽'列表可能引入隐性假设。
作为约定类技能可防止硬编码英文和翻译缺漏,直接产出为符合规范的代码修改,边际价值在于保证 9 种语言字典同步。扣分点:无代表性输出验证,效果依赖模型遵守程度,实际收益未经执行或第三方证据确认。
引用的文件路径(packages/ui/src/lib/i18n/messages/*.ts)可在仓库中核对,规则可审计。扣分点:静态审阅未见这些字典文件本身,'翻译完整'的声明无法独立复核,也无第三方执行证据,覆盖率有限。
- 本评估为静态源码审阅,未执行任何代码;效果与可靠性结论置信度低。
- 该技能强制'所有语言立即完整翻译',若维护者无法翻译某语言,需按技能要求显式说明,而非粘贴英文占位。
- 技能缺少版本号与变更记录,更新时需人工核对规则是否与 packages/ui 的 i18n 实现同步。
- 发布者未经 FollowSkills 企业注册表验证,来源身份未知(并非可疑)。
- description 中的 'user-facing strings' 范围依赖解释,可能出现误触发或漏触发。
这个 Skill 能做什么,适合哪些场景?
这是 OpenChamber(OpenCode 的桌面与网页界面)仓库内置的 18 个 Agent Skill 之一,位置在 .agents/skills/locale-ui-patterns/SKILL.md。它不是可执行工具,而是一份强制性的 i18n 工作规范:规定所有界面文案必须通过 @/lib/i18n,新增的翻译键必须立即在全部九种语言字典中填入真实译文。规范还覆盖键命名风格、React 中的响应式取词方式、参数占位符与复数处理规则。适合在向 OpenChamber 贡献代码或让 AI 代理修改其 UI 时加载使用。
该技能定义并强制执行一套翻译键工作流:在 packages/ui/src/lib/i18n/messages/en.ts 中新增或复用键;立即将完整译文写入 es/fr/ko/pl/pt-BR/uk/zh-CN/zh-TW 等全部非英语字典;组件内通过 useI18n() 的 t('key') 在渲染作用域内取词;使用 {name} 类占位符传递真实值,禁止用 {suffix} 等语法碎片拼句,复数与可选子句须用独立完整消息键;同时列出不可翻译的保留字面量(OpenChamber、MCP、SSE、文件路径等)和六项完成验收标准。它本身不运行任何脚本,纯靠指令约束代理行为。
- 向 OpenChamber 提交 PR 的贡献者,新增了一个按钮或设置项文案,需要按项目规范同步翻译到九种语言。
- 让 Claude Code 等 AI 代理批量修改 OpenChamber 界面文本,希望代理不把英文字符串硬编码进组件,也不在 es.ts/zh-CN.ts 里偷懒粘贴英文。
- 维护者审查他人改动时,用技能中的完成标准(无硬编码英文、全字典覆盖、响应式取词)作为核对清单。
- 接入其他类似的多语言 React 项目时,参考其键命名(位置+角色+含义)、复数处理和语言选择器 label(locale) 等模式。
这个 Skill 有哪些优点和局限?
- 规则极其具体且可执行:给出了正确/错误代码对照、禁止的占位符清单和明确的完成验收标准,AI 代理难以钻空子。
- 明确封堵了常见的偷懒路径——‘先留英文’在项目中根本不存在,无翻译时应明说而非静默粘贴英文。
- 纯指令型技能,无脚本和运行时依赖,任何 Agent Skills 兼容客户端都能直接使用。
- 强绑定 OpenChamber 的代码结构(@/lib/i18n、packages/ui 路径、useI18n 等),直接用于其他项目需要先改写路径和约定。
- 仅是规范文档,不含自动化检查脚本,符合与否依赖代理自觉或人工审查。
- 九种目标语言列表固定(es/fr/ko/pl/pt-BR/uk/zh-CN/zh-TW 加 en),新增语言支持需自行扩展规范。
如何安装这个 Skill?
技能随 openchamber/openchamber 仓库分发(MIT 许可)。将该仓库克隆后,把 .agents/skills/locale-ui-patterns/ 目录复制到你自己的 .agents/skills/ 目录下(Claude Code 会识别仓库内该位置);或保持仓库内原样使用。仓库未提供单独的安装脚本或安装命令,具体客户端装载方式以所用工具文档为准。
如何使用这个 Skill?
在 OpenChamber 仓库中让代理执行任何涉及 UI 文案的任务即可,描述字段会让客户端在相关场景自动加载它;也可显式触发,例如输入:「给设置页的语言选项加一个 aria-label,按照 locale-ui-patterns 的规范,并同步翻译到所有语言」。随后按技能规定的流程检查:en.ts 新增键、全部非英语字典有真实译文、t() 在渲染作用域内调用、无宽泛 store 中的 locale 字段、无整应用重挂载。