internationalization-i18n について
複数のロケールに対応するアプリを開発する人向けの国際化・ローカライズスキルです。翻訳、ロケール別の書式、RTLレイアウト、翻訳ワークフローを扱い、複数のi18nライブラリや手法のガイドを提供します。
主な機能
- 01翻訳とメッセージ管理
- 02複数形ルールとICUメッセージ
- 03ロケール別の日付・数値書式
- 04右から左へ読む言語への対応
- 05ロケールの検出と切り替え
- 06翻訳ワークフローの指針
活用シーン
- 01アプリへの多言語対応の追加
- 02ロケールに応じた日付や数値の書式設定
- 03アラビア語やヘブライ語のレイアウト対応
- 04翻訳文字列とワークフローの管理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill internationalization-i18nインストール後、Claude Code で/internationalization-i18nを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/date-and-time-formatting.mdi18next-javascripttypescript.mdlocale-detection.mdnumber-and-currency-formatting.mdpluralization-rules.mdpython-i18n-gettext.mdreact-intl-formatjs.mdrtl-right-to-left-language-support.mdserver-side-i18n.mdtranslation-management.mdtemplates/component-template.tsx詳細
国際化(i18n)とローカライズ
目次
概要
アプリケーションで国際化とローカライズを実装するための包括的なガイドです。メッセージの翻訳、複数形、日付・時刻・数値の書式設定、RTL 言語、一般的な i18n ライブラリとの統合について説明します。
使用する場面
- 多言語アプリケーションを構築する場合
- 国際的なユーザーに対応する場合
- 言語切り替えを実装する場合
- 地域ごとに日付、時刻、数値を書式設定する場合
- RTL(右から左へ記述する)言語に対応する場合
- 翻訳文字列を抽出して管理する場合
- 複数形のルールを実装する場合
- 翻訳ワークフローを設定する場合
クイックスタート
最小限の動作例:
// i18n.ts
import i18next from "i18next";
import Backend from "i18next-http-backend";
import LanguageDetector from "i18next-browser-languagedetector";
await i18next
.use(Backend)
.use(LanguageDetector)
.init({
fallbackLng: "en",
debug: process.env.NODE_ENV === "development",
interpolation: {
escapeValue: false, // React already escapes
},
backend: {
loadPath: "/locales/{{lng}}/{{ns}}.json",
},
detection: {
order: ["querystring", "cookie", "localStorage", "navigator"],
caches: ["localStorage", "cookie"],
},
});
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装については、references/ ディレクトリを参照してください。
| ガイド | 内容 |
|---|---|
| i18next(JavaScript/TypeScript) | i18next(JavaScript/TypeScript) |
| React-Intl(Format.js) | React-Intl(Format.js) |
| Python i18n(gettext) | Python i18n(gettext) |
| 日付と時刻の書式設定 | 日付と時刻の書式設定 |
| 数値と通貨の書式設定 | 数値と通貨の書式設定 |
| 複数形のルール | 複数形のルール |
| RTL(右から左へ記述する)言語のサポート | RTL(右から左へ記述する)言語のサポート |
| 翻訳管理 | 翻訳管理 |
| ロケールの検出 | ロケールの検出 |
| サーバーサイド i18n | サーバーサイド i18n |
ベストプラクティス
✅ DO
- ユーザーに表示するすべての文字列を翻訳ファイルに抽出します
- 複雑なメッセージには ICU メッセージ形式を使用します
- 各言語の複数形に正しく対応します
- ロケールに応じた日付・時刻・数値の書式設定を使用します
- アラビア語やヘブライ語などの RTL サポートを実装します
- フォールバック言語(通常は英語)を用意します
- 名前空間を使って翻訳を整理します
- 疑似ローカライズ(ääçćëńţś)でテストします
- ロケール設定を保存します(cookie、localStorage)
- 本番環境ではプロの翻訳者を利用します
- 翻訳管理ワークフローを実装します
- ロケールの動的な切り替えに対応します
- 翻訳メモリツールを使用します
❌ DON'T
- ユーザーに表示する文字列をコードにハードコードしないでください
- 翻訳済みの文字列を連結しないでください
- 英語の文法規則がすべての言語に当てはまると思い込まないでください
- すべての言語で汎用的な複数形(one/many)を使用しないでください
- テキストの長さが増えることを忘れないでください(ドイツ語は約30%長くなります)
- 日付や時刻をロケール固有の形式で保存しないでください
- 言語を表すのに国旗を使用しないでください(国旗 ≠ 言語)
- 文脈を考慮せずに技術用語を翻訳しないでください
- 翻訳キーと UI 文字列を混在させないでください
- alt テキスト、タイトル、プレースホルダーの翻訳を忘れないでください
- 左から右へのレイアウトを前提としないでください
コメント
Markdown 対応