i18n Skills
用於審核和包裝 i18n 字串的 AI 命令
問題
你的程式碼庫中有 500 個硬編碼字串,散落在元件、範本和視圖中。手動包裝需要數天枯燥的查找替換。即使包裝完成,仍可能漏掉在德語中會失效的拆分句子、在阿拉伯語中出錯的複數邏輯,以及讓本地化檔案膨脹的孤立鍵。
解決方案
兩個 AI 斜槓命令即可處理完整 i18n 工作流。先執行 /i18n-review 以只讀方式審核程式碼,再執行 /i18n-wrap 自動修復所有問題。兩個命令都會檢測框架、理解本地化檔案格式,並在提交前驗證更改。
/i18n-review
只讀審核,查找拆分句子、損壞的複數、未包裝字串和未使用的鍵,絕不會修改程式碼。
/i18n-wrap
使用正確的翻譯函數自動包裝硬編碼字串、產生語義鍵、更新本地化檔案並驗證構建。
/i18n-review 命令
review 命令會以只讀方式審核程式碼庫,掃描每個檔案中的 i18n 問題,並產生按優先次序排列的報告,列出準確檔案位置和修復建議。你的程式碼絕不會被修改。
/i18n-review src/
/i18n-review src/ --framework=next-intl檢查內容
- 拆分句子:拼接 t() 呼叫,導致其他語言的詞序失效
- 過度包裝:技術字串、CSS 類、URL 和枚舉值被錯誤地用 t() 包裝
- 包裝不足:按鈕標籤、標題和錯誤訊息等可見 UI 字串仍為硬編碼
- 複數問題:使用三元運算符或 === 1 檢查,而非正確的 ICU 複數語法
- 未使用的鍵:已在本地化檔案中定義,卻從未在程式碼中引用
- 硬編碼格式值:日期、幣種和數字未使用 Intl 格式化程式
/i18n-wrap 命令
wrap 命令會使用框架對應的正確翻譯函數自動包裝硬編碼字串。它會檢測 i18n 庫,按元件或功能分組產生語義鍵,更新本地化檔案,並驗證構建仍然通過。
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18next功能
- 框架檢測:識別 i18n 庫及其翻譯函數(t、$t、$_、gettext 等)
- 語義鍵產生:建立 nav.signIn、errors.notFound 等含義明確的鍵,而不是通用標籤
- 本地化檔案更新:以正確格式(JSON、YAML、PO 等)向來源語言檔案新增新鍵
- 構建驗證:包裝後執行構建、檢查和測試命令,發現任何回歸
支援的框架
兩個命令都會根據項目依賴自動檢測框架。你也可以通過 --framework 標誌明確指定。以下列出受支援的 10 種框架及其翻譯函數和複數格式。
| 框架 | 翻譯函數 | 複數格式 |
|---|---|---|
| react-i18next | t() | key_one / key_other |
| next-intl | t() | ICU {count, plural, ...} |
| vue-i18n | $t() | Pipe syntax | singular | plural |
| angular i18n | $localize | ICU {count, plural, ...} |
| svelte-i18n | $_() | ICU {count, plural, ...} |
| flutter intl | S.of(context) | Intl.plural() |
| django | gettext / _() | ngettext() |
| rails i18n | t() | count key |
| laravel | __() / @lang | trans_choice() |
| swift | NSLocalizedString | .stringsdict |
安裝
將命令檔案複製到 .claude/commands/ 目錄,僅此而已,無需依賴或設定。命令是普通 Markdown 檔案,任何 AI 編碼助手都能執行。
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/用法示例
React 項目
審核使用 react-i18next 的 React 應用程式,再包裝所有硬編碼字串。命令會從 package.json 檢測 react-i18next,並使用正確的 t() 函數和 key_one/key_other 複數格式。
# Review a React project for i18n issues
/i18n-review src/ --framework=react-i18next
# Wrap all hardcoded strings automatically
/i18n-wrap src/components/ --framework=react-i18next
# Result: t() calls inserted, keys added to en/translation.jsonDjango 項目
審核 Django 範本和視圖中的 i18n 問題,再使用 gettext 包裝字串。命令會從 settings.py 檢測 Django,簡單字串使用 _(),複數則使用 ngettext()。
# Review Django templates and views
/i18n-review myapp/ --framework=django
# Wrap hardcoded strings with gettext
/i18n-wrap myapp/templates/ --framework=django
# Result: _() calls inserted, .po file updated立即試用 i18n Agent
將翻譯檔案拖放到此處
JSON, YAML, PO, XML, CSV, Markdown, Properties
或點擊選擇檔案
目標語言