Files
chill_notes/AI工程/SoftwareLocalizationSkill.md
2026-04-23 14:31:40 +08:00

162 lines
5.2 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Software Localization Skill
> AI 驱动的软件本地化/翻译技能
>
> 归档2026-04-23
---
## 📊 基本信息
| 项目 | 数据 |
|------|------|
| **名称** | localization |
| **作者** | aaronbrethorst |
| **来源** | https://github.com/aaronbrethorst/claude-skills/tree/main/localizer |
| **Stars** | ⭐ 4 |
| **文件** | 7 个SKILL.md + 6 个支撑文件) |
---
## 🎯 核心定位
**软件本地化/翻译技能** — 将项目翻译成新语言、添加新语言环境、创建翻译、本地化字符串或处理 i18n/l10n 文件。
支持**自动检测**任何项目类型的本地化框架。
---
## 🔄 工作流程6步
### Step 1: Detect Project Type
检测项目使用的本地化框架和文件格式。
| 框架 | 位置 | 格式 | 关键模式 |
|------|------|------|----------|
| React (react-i18next) | `public/locales/`, `src/locales/` | JSON | `{"key": "value"}` |
| React (react-intl) | `src/translations/`, `lang/` | JSON | `{"key": {"defaultMessage": "..."}}` |
| Vue (vue-i18n) | `src/locales/`, `locales/` | JSON/YAML | `{"key": "value"}` |
| Angular | `src/assets/i18n/`, `src/locale/` | JSON/XLIFF | JSON 或 XML |
| iOS | `*.lproj/Localizable.strings` | Strings | `"key" = "value";` |
| Android | `res/values-*/strings.xml` | XML | `<string name="key">value</string>` |
| Rails (i18n) | `config/locales/` | YAML | `en:\n key: value` |
| Django | `locale/*/LC_MESSAGES/` | PO/POT | `msgid "key"\nmsgstr "value"` |
| .NET (resx) | `Resources/`, `*.resx` | XML | `<data name="key"><value>...</value></data>` |
| Flutter | `lib/l10n/`, `assets/translations/` | ARB/JSON | `{"key": "value", "@key": {...}}` |
| Go (go-i18n) | `locales/`, `translations/` | JSON/TOML | Various |
| PHP (Laravel) | `resources/lang/` | PHP/JSON | `return ['key' => 'value'];` |
| Next.js | `messages/`, `locales/` | JSON | `{"namespace": {"key": "value"}}` |
| Gettext | `*.po`, `*.pot` | PO | msgid/msgstr pairs |
### Step 2: Validate Target Language
验证目标语言是否为有效的 ISO 639 语言代码。
**需要确认的情况**
- **"Chinese"** → 需要确认:繁体(zh-TW/zh-HK)、简体(zh-CN/zh-Hans)
- **"Spanish"** → 需要确认:西班牙(es-ES)、拉丁美洲(es-419)、墨西哥(es-MX)
- **"Portuguese"** → 需要确认:巴西(pt-BR)还是葡萄牙(pt-PT)
- **"Serbian"** → 需要确认:西里尔文(sr-Cyrl)还是拉丁文(sr-Latn)
- **"Norwegian"** → 需要确认Bokmål(nb)还是Nynorsk(nn)
- **"Malay"** → 需要确认:马来西亚(ms-MY)、新加坡(ms-SG)、文莱(ms-BN)
### Step 3: Extract Source Strings
加载英语源文件并解析所有可翻译字符串。
**注意**
- **精确保留 keys** — 不修改 key 名称
- **注意占位符** — `{name}`, `{{count}}`, `%s`, `%d`, `%@`
- **注意 HTML/标记** — `<b>`, `<a href="...">`
- **注意复数形式** — `one`, `other`, `few`, `many`
- **注意上下文** — ICU 消息格式、性别变化等
### Step 4: Dual Translation双翻译
使用两个独立子代理(`translator-alpha``translator-beta`)进行翻译。
### Step 5: Verification验证
第三个子代理 `translator-adjudicator` 比较两个翻译结果,选择最佳翻译。
### Step 6: Output
生成正确格式的本地化文件。
---
## 📁 支持文件
| 文件 | 说明 |
|------|------|
| `SKILL.md` | 主技能文件8.3 KB |
| `ADJUDICATOR_INSTRUCTIONS.md` | 裁判指令6.0 KB |
| `ISO_CODES.md` | ISO 639 语言代码参考3.5 KB |
| `TRANSLATOR_INSTRUCTIONS.md` | 翻译员指令4.8 KB |
| `translator-adjudicator.md` | 裁判代理配置 |
| `translator-alpha.md` | Alpha 翻译代理配置 |
| `translator-beta.md` | Beta 翻译代理配置 |
---
## 🧠 三代理架构
```
用户请求
[检测项目类型] → [验证语言代码] → [提取源字符串]
┌─────────────────┬─────────────────┐
↓ ↓ ↓
translator-alpha translator-beta 两个独立翻译代理
↓ ↓ ↓
↓ ↓ ↓
translator-adjudicator 裁判代理(选择最佳)
输出最终翻译文件
```
---
## 💡 核心亮点
1. **自动框架检测** — 支持 React/Vue/iOS/Android/Rails/Django/.NET/Flutter/Go/PHP 等
2. **双翻译验证** — 两个独立翻译 + 裁判选择,质量更高
3. **ISO 语言代码验证** — 确保语言代码正确
4. **精确字符串提取** — 保留占位符、HTML、复数形式等
---
## 📦 安装方式
```bash
# 使用 skills.sh
npx skills add aaronbrethorst/claude-skills
# 或下载本地
wget skill.zip
```
---
## 🔗 相关资源
| 资源 | 链接 |
|------|------|
| GitHub | https://github.com/aaronbrethorst/claude-skills/tree/main/localizer |
| SkillsMP | https://skillsmp.com/skills/aaronbrethorst-claude-skills-localizer-skill-md |
| Manus | https://manus.im/features/agent-skills |
---
## AI工程索引
相关笔记:
- [[INDEX_AI工程]] - AI工程知识索引
- [[ClaudeCode完全研究]] - Claude Code 完整指南
- [[claude-code-best-practice详解]] - 最佳实践详解
---
*整理:知识库管理员 | 归档2026-04-23*