| name | localize |
| description | 运行本地化工作流:提取字符串、验证本地化就绪状态、检查硬编码文本,并生成可供翻译的字符串表。 |
| argument-hint | [scan|extract|validate|status] |
| user-invocable | true |
| allowed-tools | Read, Glob, Grep, Write, Bash |
当此技能被调用时:
-
解析子命令参数:
scan — 扫描本地化问题(硬编码字符串、缺失键)
extract — 提取新字符串并生成/更新字符串表
validate — 验证现有翻译的完整性和格式
status — 报告整体本地化状态
-
对于 scan:
- 搜索
src/ 中的硬编码面向用户的字符串:
- UI 代码中未被本地化函数包裹的字符串字面量
- 应该参数化的拼接字符串
- 使用位置占位符(
%s、%d)而非命名占位符({playerName})的字符串
- 搜索本地化反模式:
- 未使用区域感知函数的日期/时间格式化
- 未考虑区域设置的数字格式化
- 嵌入在图片或纹理中的文本(标记资源文件)
- 假设从左到右文本方向的字符串
- 报告所有发现,包含文件路径和行号
-
对于 extract:
- 扫描所有源文件中的本地化字符串引用
- 与
assets/data/ 中的现有字符串表(如有)进行对比
- 为尚未有键的字符串生成新条目
- 按照命名约定建议键名:
[category].[subcategory].[description]
- 输出要添加到字符串表的新字符串的差异
-
对于 validate:
- 读取
assets/data/ 中的所有字符串表文件
- 检查每个条目的:
- 缺失翻译(键存在但某区域没有翻译)
- 占位符不匹配(源文本有
{name} 但翻译缺失)
- 字符串长度违规(超过 UI 元素的字符限制)
- 孤立键(翻译存在但代码中没有引用该键)
- 按区域和严重级别分组报告验证结果
-
对于 status:
- 统计可本地化字符串总数
- 按区域:统计已翻译、未翻译和过时(源文本自翻译后已更改)的数量
- 生成覆盖率矩阵:
## 本地化状态
生成日期:[日期]
| 区域 | 总计 | 已翻译 | 缺失 | 过时 | 覆盖率 |
|------|------|--------|------|------|--------|
| en (源) | [N] | [N] | 0 | 0 | 100% |
| [区域] | [N] | [N] | [N] | [N] | [X]% |
### 问题
- 源代码中发现 [N] 个硬编码字符串
- [N] 个字符串超出字符限制
- [N] 个占位符不匹配
- [N] 个孤立键(可清理)
规则
- 英语 (en) 始终为源区域
- 每个字符串表条目必须包含解释上下文的翻译者注释
- 永远不要直接修改翻译文件 — 生成差异供审核
- 字符限制必须按 UI 元素定义并自动执行
- 从右到左 (RTL) 语言支持应从一开始就考虑,而非事后追加