Skip to main content

i18n Skills

用於審核和包裝 i18n 字串的 AI 命令

問題

你的程式碼庫中有 500 個硬編碼字串,散落在元件、範本和視圖中。手動包裝需要數天枯燥的查找替換。即使包裝完成,仍可能漏掉在德語中會失效的拆分句子、在阿拉伯語中出錯的複數邏輯,以及讓本地化檔案膨脹的孤立鍵。

手動包裝 i18n 容易出錯:開發者會漏掉拆分句子、用三元運算符破壞複數,還會在邊緣情況中留下硬編碼字串。這些缺陷只有翻譯後才會暴露,屆時修復成本高出 10 倍。

解決方案

兩個 AI 斜槓命令即可處理完整 i18n 工作流。先執行 /i18n-review 以只讀方式審核程式碼,再執行 /i18n-wrap 自動修復所有問題。兩個命令都會檢測框架、理解本地化檔案格式,並在提交前驗證更改。

/i18n-review

只讀審核,查找拆分句子、損壞的複數、未包裝字串和未使用的鍵,絕不會修改程式碼。

/i18n-wrap

使用正確的翻譯函數自動包裝硬編碼字串、產生語義鍵、更新本地化檔案並驗證構建。

/i18n-review 命令

review 命令會以只讀方式審核程式碼庫,掃描每個檔案中的 i18n 問題,並產生按優先次序排列的報告,列出準確檔案位置和修復建議。你的程式碼絕不會被修改。

Terminal
/i18n-review src/
/i18n-review src/ --framework=next-intl

檢查內容

  • 拆分句子:拼接 t() 呼叫,導致其他語言的詞序失效
  • 過度包裝:技術字串、CSS 類、URL 和枚舉值被錯誤地用 t() 包裝
  • 包裝不足:按鈕標籤、標題和錯誤訊息等可見 UI 字串仍為硬編碼
  • 複數問題:使用三元運算符或 === 1 檢查,而非正確的 ICU 複數語法
  • 未使用的鍵:已在本地化檔案中定義,卻從未在程式碼中引用
  • 硬編碼格式值:日期、幣種和數字未使用 Intl 格式化程式
review 命令完全只讀。無論在開發期間還是 CI/CD 管線中,都可以隨時執行,不會產生意外更改。

/i18n-wrap 命令

wrap 命令會使用框架對應的正確翻譯函數自動包裝硬編碼字串。它會檢測 i18n 庫,按元件或功能分組產生語義鍵,更新本地化檔案,並驗證構建仍然通過。

Terminal
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18next

功能

  • 框架檢測:識別 i18n 庫及其翻譯函數(t、$t、$_、gettext 等)
  • 語義鍵產生:建立 nav.signIn、errors.notFound 等含義明確的鍵,而不是通用標籤
  • 本地化檔案更新:以正確格式(JSON、YAML、PO 等)向來源語言檔案新增新鍵
  • 構建驗證:包裝後執行構建、檢查和測試命令,發現任何回歸
wrap 命令會通過執行構建和測試套件驗證每項更改。如果任何步驟失敗,便會自動回滾。

支援的框架

兩個命令都會根據項目依賴自動檢測框架。你也可以通過 --framework 標誌明確指定。以下列出受支援的 10 種框架及其翻譯函數和複數格式。

框架翻譯函數複數格式
react-i18nextt()key_one / key_other
next-intlt()ICU {count, plural, ...}
vue-i18n$t()Pipe syntax | singular | plural
angular i18n$localizeICU {count, plural, ...}
svelte-i18n$_()ICU {count, plural, ...}
flutter intlS.of(context)Intl.plural()
djangogettext / _()ngettext()
rails i18nt()count key
laravel__() / @langtrans_choice()
swiftNSLocalizedString.stringsdict

安裝

將命令檔案複製到 .claude/commands/ 目錄,僅此而已,無需依賴或設定。命令是普通 Markdown 檔案,任何 AI 編碼助手都能執行。

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
這些是標準斜槓命令檔案,可在 Claude Code 中開箱即用,也能適配其他支援自訂命令的 AI 編碼助手。

用法示例

React 項目

審核使用 react-i18next 的 React 應用程式,再包裝所有硬編碼字串。命令會從 package.json 檢測 react-i18next,並使用正確的 t() 函數和 key_one/key_other 複數格式。

React Project
# 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.json

Django 項目

審核 Django 範本和視圖中的 i18n 問題,再使用 gettext 包裝字串。命令會從 settings.py 檢測 Django,簡單字串使用 _(),複數則使用 ngettext()。

Django Project
# 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

或點擊選擇檔案

目標語言

無需註冊即時估價

常見問題