i18n 国际化工作流
为 AionUi 项目提供标准化的多语言翻译流程,确保所有用户可见文本都正确国际化。
技能文件是纯文档,描述 i18n 工作流,未发现恶意行为或过度权限。但缺少权限隔离、确认机制和数据流透明度的说明,并且发布者身份未经验证,因此予以扣分。
文档内部逻辑一致,提供了清晰的命令和步骤,但缺少实际测试覆盖的证据,错误处理说明不足,静态审查下无法验证关键路径可复现。
技能针对 i18n 工作流,场景明确,但未声明能力边界和触发条件的精确语义,可能被误触发。同时技能依赖仓库特定结构,未考虑中文用户的环境适配(如网络可达性)。
文档结构清晰,有安全检查清单和常见错误表格,但缺少版本控制、变更日志、已知限制和明确的责任人。
文档能指导完成 i18n 任务,但输出直接可用性未验证,且与其他工具相比没有明显优势证据。
除了 README 中的测试命令和 CI 工作流外,没有提供独立验证或第三方执行证据,静态审查下无法确认关键声明。
- 技能为纯文档,但未声明权限边界或数据流,实际执行时仍需遵循最小权限原则。
- 当前仓库使用 GitHub Actions 和 OpenAI API,中国大陆网络可能无法直接访问,若技能依赖这些服务则需考虑网络适配。
- 技能描述基于仓库现状,但未提及版本兼容性或配置变更,可能随仓库更新而过时。
这个 Skill 能做什么,适合哪些场景?
这是一个专为 AionUi 代码库设计的国际化(i18n)技能,提供统一的多语言翻译工作流和标准。它指导开发者在添加新文本、创建组件或审查代码时,遵循规范的 i18n 流程。该技能强调以 `src/common/config/i18n-config.json` 为单一事实来源,确保所有语言和模块同步更新。它覆盖了从键命名、模块选择到类型生成和验证的完整流程,并通过脚本自动检查硬编码字符串。
该技能定义了一套国际化工作流,包括:读取配置文件获取当前支持的语言和模块列表;在 src/renderer/i18n/locales/<lang>/ 下管理各语言的 JSON 翻译文件;遵循命名空间点号命名规则(如 t('module.key'));添加新文本时需在所有支持语言的目录中同步添加键;运行 bun run i18n:types 重新生成类型定义,再运行 node scripts/check-i18n.js 验证结构、键同步和类型一致性;检测并禁止在 JSX 中硬编码中文或英文文本。
- 在开发新功能时,需要为 UI 添加新的用户可见文本,确保所有语言同步。
- 创建包含用户可见文本的新组件,需要使用 `t()` 函数而非硬编码字符串。
- 代码审查阶段,需要检查代码是否符合 i18n 规范,查找硬编码文本。
- 需要添加新的翻译模块(如 `cron` 模块)时,遵循新建模块的完整流程。
这个 Skill 有哪些优点和局限?
- 清晰的标准和流程,确保所有语言同步
- 自动生成类型定义,减少错误
- 提供硬编码检测,提高代码质量
- 单一事实来源配置,易于扩展语言和模块
- 仅适用于 AionUi 特定项目结构,通用性有限
- 依赖特定命令(`bun run i18n:types`)和脚本,需要 Bun 环境
- 未提供自动化翻译质量检查,依赖人工
- 文档未提及该技能在独立项目中的可复用性
如何安装这个 Skill?
该技能是 AionUi 仓库的一部分,位于 .claude/skills/i18n/ 目录。克隆或下载整个仓库后,即可在支持 Agent Skills 的客户端(如 Claude Code)中作为技能使用。无需单独安装。确保已安装 Bun 和 Node.js 以运行脚本。
如何使用这个 Skill?
在开发涉及用户可见文本的代码时,主动调用此技能。例如,当添加新文本时,先读取 src/common/config/i18n-config.json 获取当前语言和模块列表,然后在每个语言的对应模块 JSON 文件中添加键,使用 t() 函数在代码中引用,最后运行 bun run i18n:types 和 node scripts/check-i18n.js 验证。