{"id":"i18n-helper","name":"i18n-helper","summary":"国際化/ローカリゼーションアシスタント — コード内のハードコードテキストをスキャンし、i18n構成を生成し、バッチ翻訳を行います","body":"# 🌍 i18n-helper — 国际化/本地化助手\n\n## 触发条件\n当用户要求以下操作时激活此技能：\n- 扫描代码中的硬编码中文/英文文本\n- 为项目添加国际化支持（i18n）\n- 批量提取和翻译语言文件\n- 检查翻译完整性（缺失 key 检测）\n\n## 工作流程\n\n### 1. 项目分析\n- 检测项目类型（React/Vue/Angular/Node.js/Python/Java 等）\n- 识别已使用的 i18n 框架（react-intl, vue-i18n, i18next, gettext 等）\n- 扫描源代码目录结构\n\n### 2. 硬编码文本扫描\n- 在 `.js/.jsx/.ts/.tsx/.vue/.py/.java/.go` 等文件中搜索硬编码字符串\n- 排除：变量名、URL、正则表达式、import 路径、日志调试信息\n- 标记：用户可见的 UI 文本、错误提示、通知消息\n\n### 3. 语言文件生成\n根据项目框架生成对应格式：\n- **JSON** (i18next/react-intl): `{ \"key\": \"value\" }`\n- **YAML** (vue-i18n): `key: value`\n- **PO/POT** (gettext): 标准格式\n- **Properties** (Java): `key=value`\n\n### 4. 代码替换\n- 将硬编码文本替换为 i18n 函数调用\n- 保持原有格式和变量插值\n- 示例：\n  ```javascript\n  // 替换前\n  alert('保存成功');\n  // 替换后\n  alert(t('alert.saveSuccess'));\n  ```\n\n### 5. 完整性检查\n- 对比主语言文件与翻译文件的 key 差异\n- 输出缺失翻译的 key 列表\n- 统计翻译完成度百分比\n\n## 输出格式\n```markdown\n## 📊 i18n 扫描报告\n\n### 硬编码文本\n| 文件 | 行号 | 内容 | 建议 key |\n|------|------|------|----------|\n| src/App.tsx | 42 | '欢迎使用' | page.welcome |\n\n### 语言文件\n已生成 `locales/zh-CN.json` 和 `locales/en-US.json`\n\n### 翻译完整性\n- zh-CN: 45/45 (100%) ✅\n- en-US: 42/45 (93.3%) ⚠️ 缺少 3 个 key\n```\n\n## 支持的 i18n 框架\n- react-intl / FormatJS\n- vue-i18n\n- i18next / react-i18next / next-i18next\n- Angular @ngx-translate\n- Python gettext / Flask-Babel\n- Java ResourceBundle / Spring MessageSource\n- Go go-i18n\n\n## 注意事项\n- 不要翻译技术术语（API、SDK、HTTP 等）\n- 保留变量占位符 `{name}` `{{count}}` `%s` 等格式\n- 复数形式和性别变体需要特殊处理\n- 日期、数字、货币格式需使用 locale 感知的格式化函数","author":"@laolaoshiren","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/laolaoshiren/claude-code-skills-zh/tree/main/skills/i18n-helper","license":"MIT","category":"coding","lang":"multi","tokens":716,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}