{"slug":"pdlc-i18n","title":"pdlc-i18n","summary":"国际化（i18n）","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-23T18:54:23.619243Z","repo":{"url":"https://github.com/kanfu-panda/pdlc-skills","stars":15,"forks":2,"license":"MIT","updatedAt":"2026-09-23T15:59:31Z"},"bodyHtml":"<hr>\n<h2>name: pdlc-i18n\ndescription: 国际化（i18n）\nargument-hint: &lt;目标语言 | 模块名&gt;\nallowed-tools: Read, Write, Edit, Glob, Grep, Bash\nlayer: 3\nstage: engineering\nproduces: []\nrequires: []\nnext_step: null\nterminal_state: null</h2>\n<h1>国际化（i18n）</h1>\n\n<p>⛔ <strong>IRON LAW · 不可违反的硬门禁</strong></p>\n<p>以下规则为<strong>不可协商</strong>的执行约束：</p>\n<ol>\n<li><strong>文件必须落盘</strong>：所有带编号（功能ID / 缺陷ID）的文档，必须作为实际文件写入磁盘，不可仅在对话中输出。</li>\n<li><strong>阶段必须落章</strong>：每个阶段完成后必须在状态机 <code>docs/.pdlc-state/&lt;feature-id&gt;.json</code> 追加 history，不可跳过。</li>\n<li><strong>测试必须存在</strong>：进入 <code>/pdlc-implement</code> 前，对应测试必须存在且处于红灯状态。违反则中止。</li>\n<li><strong>自检必须执行</strong>：段二自检为强制步骤，不得以\"已经很好了\"为由跳过。</li>\n<li><strong>防循环</strong>：段三修复为单次，不递归。无法自动修复的问题记录到报告，继续往下走。</li>\n<li><strong>状态必推进</strong>：成功执行某 phase 后 <code>current_stage</code> 必须变更。收尾时若发现 <code>current_stage</code> 未推进，视为失败并报错，<strong>不得静默返回</strong>（防止外层循环拿滞后的状态空转烧额度）。唯一例外：命中人工点主动 block 时，<code>current_stage</code> 保持不变但必须写 <code>last_phase_result.ok=false</code> + <code>blocked_reason</code>。</li>\n</ol>\n<p><strong>违反任一条 = 立即中止当前命令，输出违规详情，等待人工介入。</strong></p>\n\n<p>为指定的前端应用或后端服务添加国际化支持。</p>\n<h2>工作流程</h2>\n<ol>\n<li><strong>扫描硬编码文本</strong>: 查找代码中所有硬编码的中文字符串</li>\n<li><strong>提取文本资源</strong>: 生成多语言资源文件</li>\n<li><strong>替换硬编码</strong>: 用 i18n 函数调用替换原有的硬编码文本</li>\n<li><strong>生成翻译清单</strong>: 输出待翻译的文本列表</li>\n</ol>\n<h2>前端（React/Vue）</h2>\n<ul>\n<li>资源文件位置: <code>src/locales/zh-CN.json</code>、<code>src/locales/en-US.json</code></li>\n<li>使用 <code>react-i18next</code> 或 <code>vue-i18n</code></li>\n<li>Key 命名规范: <code>模块.页面.组件.描述</code>，如 <code>user.login.form.username</code></li>\n</ul>\n<h2>后端（Java/Go/Python/Node）</h2>\n<ul>\n<li>错误提示信息国际化</li>\n<li>API 响应消息国际化</li>\n<li>根据请求头 <code>Accept-Language</code> 返回对应语言</li>\n</ul>\n<h2>资源文件格式</h2>\n<pre><code>{\n  \"common\": {\n    \"confirm\": \"确认\",\n    \"cancel\": \"取消\",\n    \"save\": \"保存\",\n    \"delete\": \"删除\"\n  },\n  \"user\": {\n    \"login\": {\n      \"title\": \"用户登录\",\n      \"username\": \"用户名\",\n      \"password\": \"密码\"\n    }\n  }\n}\n</code></pre>\n<h2>要求</h2>\n<ul>\n<li>默认语言为中文（zh-CN）</li>\n<li>Key 使用英文，值使用对应语言</li>\n<li>先生成中文版本，英文版本标记 <code>// TODO: 待翻译</code></li>\n<li>日期、数字、货币使用 Intl API 格式化</li>\n</ul>\n<p>目标: $ARGUMENTS</p>\n\n<h2>段四：交接（Handoff）</h2>\n<p>命令完成后必须输出以下格式的最终消息：</p>\n<pre><code>✅ &lt;阶段名&gt; 完成：&lt;主要产出物路径&gt;\n\uD83D\uDCCA 自检：&lt;通过数&gt;/&lt;总数&gt; 通过（若有未通过，附要点）\n\uD83D\uDCE6 状态快照：docs/.pdlc-state/&lt;feature-id&gt;.json\n\uD83D\uDC49 下一步：/pdlc-&lt;next_step&gt;\n   （如果有分叉）或 /pdlc-&lt;alt&gt;（条件：&lt;选择依据&gt;）\n</code></pre>\n<p><strong>规则：</strong></p>\n<ul>\n<li>主流程命令（写状态机的命令；下一跳见正文里「本命令的状态机取值」）必须显式输出\"下一步\"，不可省略</li>\n<li>工具型命令（Layer 3）可以没有 <code>next_step</code>，此时输出 <code>\uD83D\uDC49 下一步：（本次流程结束，无后续）</code></li>\n<li>分叉场景必须说明<strong>选择条件</strong>，例如\"若需补充测试用例 → <code>/pdlc-tdd</code>；若测试已齐 → <code>/pdlc-review</code>\"</li>\n</ul>\n\n<p><strong>本命令的 handoff 输出：</strong></p>\n<pre><code>✅ 国际化资源文件 完成\n\uD83D\uDCE6 产出：src/locales/&lt;语言&gt;.json\n\uD83D\uDC49 下一步：（本次流程结束，无后续）\n</code></pre>\n","files":[{"path":"SKILL.md","sizeBytes":3941,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-23T18:54:43.023042Z","sha256":"DF51B26109806322C68278526BD4F72D7F1942639249ABA702F652EDF7876989","sizeBytes":2502},"review":null,"source":{"repositoryUrl":"https://github.com/kanfu-panda/pdlc-skills","path":"skills/pdlc-i18n","license":"MIT","commit":"3cd2f02ab45cb1cd48962e0f298ae4dad9fb442f","subtreeSha":"B5A53F12D1CF26F3B319E8C60CDC9FD8F757106AAE4F2B23082089AF0C945F08","lastSyncedAt":"2026-09-23T18:54:21.123477Z"},"reviewedAt":"2026-09-23T18:55:30.232316Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/kanfu-panda/pdlc-skills/tree/main/skills/pdlc-i18n"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install kanfu-panda-pdlc-skills@llmmart"},{"target":"git","command":"git clone https://github.com/kanfu-panda/pdlc-skills.git"}]}