← ClaudeAtlas

i18nlisted

当用户要检测/审查当前 git 变更中的 i18n、检查多语言一致性、或提到「i18n/国际化/多语言」时使用。关注各国语言差异(如英语单复数、阿拉伯语六复数形式等)
beixiyo/dotfiles · ★ 2 · Code & Development · score 63
Install: claude install-skill beixiyo/dotfiles
# i18n 变更检测 在**当前 git 变更**中识别与 i18n 相关的修改,并按语言特性做一致性检查 ## 执行步骤 1. **获取变更范围** - `git diff`:工作区未暂存变更 - `git diff --staged`:已暂存变更 或两者结合,确定本次涉及的 i18n 相关文件(locale 文件、调用 i18n 的代码等) 2. **识别 i18n 变更** - 找出变更中新增/修改/删除的**文案键**(key)或**文案内容** - 区分:仅代码侧引用键、仅 locale 文件内容、或两者同时变更 3. **一致性检查** - 各语言文件中**同一键**是否都存在且类型一致(若用 JSON/YAML 等) - 新增键是否在所有目标语言中都有对应翻译;删除键是否在各语言中同步删除 4. **按语言特性检查** 根据项目支持的语言,对照下方「语言特性」做针对性检查(如复数、性别、占位符等) ## 语言特性(各国差异) 检测时需考虑以下语言特性,避免只改一种语言导致其他语言缺失或错误 | 语言 | 特性 | 检测要点 | |------|------|----------| | **英语 (en)** | 单复数 | 是否有 `one`/`other` 或 `zero`/`one`/`other` 等复数形式;数量插值是否与复数规则一致(如 1 item / 2 items) | | **阿拉伯语 (ar)** | 六复数形式 | ICU 规则中是否考虑 zero/one/two/few/many/other 六类,与文案是否匹配 | | **俄语 (ru)、波兰语 (pl)、捷克语 (cs) 等** | 多复数形式 | 是否有 one/few/many/other 等形式,数字与形式选择是否一致 | | **法语 (fr)、西班牙语 (es) 等** | 性别与复数 | 形容词/过去分词等是否随主语性别、数量变化;复数形式是否完整 | | **中文 (zh)、日文 (ja)** | 无语法复数,可有量词 | 通常无复数形式,但需检查量词(个/条/张等)与占位符是否一致;日文敬语/简语是否统一 | | **德语 (de)** | 复数 + 格 | 复数形式多样(-e/-er/-en 等),格(主/宾/属/与)在句子中是否一致 | 若项目使用 **ICU MessageFormat**(或类似)的复数/选择语法,需检查: - `{count, plural, one {…} other {…}}` 等分支是否在所有语言中都存在且语义对应 - 占位符名称(如 `count`)在各语言中是否一致 - 某些语言(如阿拉伯语)是否有 `zero`/`two`/`few`/`many` 等额外分支 ## 输出格式 按问题逐条列出,并标注严重度: ```markdown ## i18n 变更概览 - 涉及文件:(列出 locale 文件与引用 i18n 的代码文件) - 涉及语言:en, zh, … ## 问题 1 — [简短标题] - 位置:`path/to/file` 行号或键名 - 描述:具体不一致或缺失(如:en 有复数 other,zh 缺少对应键) - 严重度:🔴 缺失 / 🟡 不一致 / 🟢 建议 - 建议:如何修改或补充 ``` ## 注意事项 - 若项目使用 i18n 库(如 vue-i18n、react-intl、i18next、Vite 插件等