Skip to content
Back to skills

I18n

ASecurity

当用户要检测/审查当前 git 变更中的 i18n、检查多语言一致性、或提到「i18n/国际化/多语言」时使用。关注各国语言差异(如英语单复数、阿拉伯语六复数形式等)

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 4, 2026
developmentreactvuegit

Security analysis

A100/100

Scanned September 4, 2026

npx -y skills add beixiyo/dotfiles --skill i18n --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of I18n?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for I18n
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/beixiyo-i18n/badge)](https://www.skillsdirectory.com/skills/beixiyo-i18n)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: i18n
description: 当用户要检测/审查当前 git 变更中的 i18n、检查多语言一致性、或提到「i18n/国际化/多语言」时使用。关注各国语言差异(如英语单复数、阿拉伯语六复数形式等)
---

# 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 插件等),可先确认 locale 目录与键的命名习惯,再按上述规则检查
- 发现某语言缺少复数分支或性别形式时,应标出并建议补全,而不是只改一种语言

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…