# Localization Validator

> 本地化验证技能，用于验证项目的本地化质量

- Skill: `shenjingnan/localization-validator` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add shenjingnan/localization-validator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shenjingnan/localization-validator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shenjingnan (https://skillmd.com/u/shenjingnan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shenjingnan/localization-validator

---


# 本地化验证技能

## 技能描述
该技能用于验证项目的本地化质量，确保所有面向中文开发者和用户的内容都符合项目的本地化标准，同时遵循务实开发理念。

### 技能使用原则
- **保证本地化质量，但避免过度严格**：确保用户可见内容本地化，但不追求完美的本地化标准
- **实用功能优先，理论完美次之**：解决实际的本地化问题比预防所有可能更重要
- **简单解决方案优于复杂方案**：优先选择直接有效的本地化检查方式
- **务实开发指导**：评估本地化的必要性，避免过度本地化

## 检查项目
1. **代码注释本地化** - 检查是否还有英文注释
2. **测试用例描述本地化** - 检查测试文件中的 describe 和 it 语句是否使用中文
3. **用户界面字符串本地化** - 检查硬编码的英文字符串
4. **错误信息本地化** - 检查面向用户的错误信息
5. **文档和注释一致性** - 确保所有文档都使用中文

## 验证规则

### 1. 代码注释检查
```typescript
// ❌ 错误 - 英文注释
// Get user data from API

// ✅ 正确 - 中文注释
// 从 API 获取用户数据
```

### 2. 测试用例描述检查
```typescript
// ❌ 错误 - 英文描述
describe("User Component", () => {
  it("should render user name correctly", () => {
    // ...
  });
});

// ✅ 正确 - 中文描述
describe("用户组件", () => {
  it("应该正确渲染用户名称", () => {
    // ...
  });
});
```

### 3. 硬编码字符串检查
```typescript
// ❌ 错误 - 硬编码英文字符串
const serviceName = "unknown";
const status = "loading";

// ✅ 正确 - 使用中文常量
const UNKNOWN_SERVICE = "未知服务";
const LOADING_STATUS = "加载中";
```

### 4. 技术标识符例外
以下情况可以保留英文：
- 技术标识符（如 "coze", "mcp", "stdio"）
- API 路径参数
- 配置键名
- 函数和变量名（遵循编程惯例）

## 验证流程

### 自动检查
1. 使用 grep 查找英文注释模式：
   ```bash
   grep -r "//.*[A-Z][a-z].*" --include="*.ts" --include="*.tsx" src/
   ```

2. 查找英文测试描述：
   ```bash
   grep -r "describe\|it(" --include="*.test.ts" --include="*.test.tsx" src/
   ```

3. 查找硬编码英文字符串：
   ```bash
   grep -r '"[a-zA-Z]\{3,\}"' --include="*.ts" --include="*.tsx" src/
   ```

### 手动验证
1. 检查自动检查的结果
2. 确认技术标识符的例外情况
3. 验证翻译的准确性和一致性

## 修复建议

### 优先级 1：高优先级
- 用户界面中的硬编码英文字符串
- 测试用例中的英文描述
- 面向用户的错误信息

### 优先级 2：中优先级
- 代码注释中的英文
- 文档中的英文内容

### 优先级 3：低优先级
- 开发者工具中的英文（如调试信息）
- 技术标识符（如服务名称）

## 常见翻译对照

| 英文 | 中文 |
|------|------|
| unknown | 未知 |
| loading | 加载中 |
| error | 错误 |
| success | 成功 |
| failed | 失败 |
| pending | 待处理 |
| completed | 已完成 |
| configuration | 配置 |
| parameter | 参数 |
| component | 组件 |
| service | 服务 |
| server | 服务器 |
| client | 客户端 |

## 使用方法

当需要对项目进行本地化验证时：

1. **运行自动检查**：执行上述 grep 命令查找英文内容
2. **分类问题**：将发现的问题按优先级分类
3. **制定修复计划**：根据优先级制定修复顺序
4. **执行修复**：逐一修复发现的问题
5. **验证修复**：确保修复后没有引入新问题

## 长期维护

### 代码审查检查点
- [ ] 所有新代码注释使用中文
- [ ] 所有新增测试用例使用中文描述
- [ ] 用户界面字符串已本地化
- [ ] 错误信息已本地化

### CI/CD 集成建议
可以将部分检查集成到 CI/CD 流程中，确保新代码符合本地化标准。

## 经验记录

### xiaozhi-client 项目经验
在 xiaozhi-client 项目的本地化过程中发现：
1. 大部分用户界面已经中文化，主要问题集中在测试文件和代码注释
2. 技术标识符（如 "coze", "mcp"）应该保持英文，便于技术交流
3. 常量定义是处理硬编码字符串的好方法
4. 测试用例描述中文化对团队协作很重要

### 最佳实践
1. 在代码审查时加入本地化检查项
2. 使用常量定义用户可见的字符串
3. 保持技术标识符的英文形式
4. 定期运行本地化验证工具

