localization-l10n について
Web・モバイルアプリ開発向けのローカライズスキルです。ロケールに応じたコンテンツ、書式、レイアウト、地域適応、テストを支援します。
主な機能
- 01Web・モバイル向けローカライズライブラリ
- 02地域別バリエーションとフォールバックチェーン
- 03ロケールに応じた日付・数値・通貨の書式
- 04RTL レイアウトとテキスト拡張
- 05地域別の住所・単位・暦
- 06ローカライズテストと自動チェック
活用シーン
- 01地域に合わせたアプリコンテンツの調整
- 02ロケール別の日付・数値・通貨の書式設定
- 03RTL 言語とテキスト拡張への対応
- 04翻訳とローカライズ済みレイアウトの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill localization-l10nインストール後、Claude Code で/localization-l10nを入力して読み込まれたか確認します。
詳細
ローカライズ(l10n)
Web アプリケーションやモバイルアプリケーションのローカライズを専門としています。次のガイドラインに従って、国際化されたアプリケーションを特定の地域、言語、文化に合わせて調整してください。
基本原則
- ローカライズ(l10n)は国際化(i18n)を基盤とします
- ユーザーに表示されるすべてのテキストがローカライズに対応するようにします
- コンテンツを文化的に適切なものに調整します
- 日付、数値、通貨に関する地域の慣習を尊重します
- ロケールによって大きく異なるコンテンツを想定した設計にします
ローカライズライブラリ
Web アプリケーション
- Web アプリケーションには i18next と react-i18next を使用します
- 名前空間ベースで翻訳を整理します
- Next.js アプリケーションには react-intl や next-i18next などのライブラリを使用します
- ICU メッセージ形式のサポートには formatjs を活用します
モバイルアプリケーション
- React Native アプリには expo-localization を使用します
- 国際化とローカライズには react-native-i18n または expo-localization を使用します
- フォールバック機能を備え、複数の言語をサポートします
- デバイスのロケールを自動検出します
翻訳管理
ファイルの整理
locales/
en-US/
common.json
legal.json
marketing.json
en-GB/
common.json
legal.json
marketing.json
es-ES/
common.json
legal.json
marketing.json
es-MX/
common.json
legal.json
marketing.json
地域ごとのバリエーション
- 地域ごとの言語バリエーション(en-US と en-GB、es-ES と es-MX など)をサポートします
- フォールバックチェーン(es-MX -> es -> en)を実装します
- 綴りの違い(color と colour など)に対応します
- 地域ごとの用語の好みに合わせて用語を調整します
ロケール固有の書式設定
日付と時刻の書式設定
// Format dates according to locale
const formatDate = (date: Date, locale: string) => {
return new Intl.DateTimeFormat(locale, {
year: 'numeric',
month: 'long',
day: 'numeric'
}).format(date);
};
// US: January 23, 2026
// UK: 23 January 2026
// Germany: 23. Januar 2026
数値の書式設定
// Format numbers according to locale
const formatNumber = (num: number, locale: string) => {
return new Intl.NumberFormat(locale).format(num);
};
// US: 1,234,567.89
// Germany: 1.234.567,89
// France: 1 234 567,89
通貨の書式設定
// Format currency according to locale
const formatCurrency = (amount: number, locale: string, currency: string) => {
return new Intl.NumberFormat(locale, {
style: 'currency',
currency: currency
}).format(amount);
};
// US/USD: $1,234.56
// Germany/EUR: 1.234,56 EUR
// Japan/JPY: JPY 1,235
文化的な適応
コンテンツのローカライズ
- 画像を文化的に適切なものに調整します
- マーケティングコンテンツは翻訳するだけでなく、ローカライズします
- 色の選択における文化的な配慮を検討します
- 例や参照を地域に即したものに調整します
法律とコンプライアンス
- プライバシーポリシーと利用規約をローカライズします
- 地域の法的要件(GDPR、CCPA など)に適合させます
- 適切な規制情報を表示します
- 地域固有の免責事項に対応します
レイアウトとタイポグラフィ
テキストの拡張
- 英語からテキストが 30~50%拡張することを想定して設計します
- 長いテキストにも対応できる柔軟なレイアウトを使用します
- ドイツ語(最も長くなることが多い)と中国語(最も短くなることが多い)でテストします
- テキストに固定幅のコンテナーを使用しないようにします
RTL サポート
- アラビア語やヘブライ語などに対する完全な RTL(右から左)サポートを実装します
- 方向に応じたレイアウトには CSS 論理プロパティを使用します
- UI 要素を適切に反転します
- 双方向テキスト(LTR と RTL の混在)に対応します
/* Use logical properties for RTL support */
.card {
margin-inline-start: 1rem;
padding-inline-end: 0.5rem;
text-align: start;
}
タイポグラフィに関する考慮事項
- 必要な文字セットに対応するフォントを使用します
- CJK(中国語、日本語、韓国語)のタイポグラフィ要件を考慮します
- アラビア語やその他の文字体系固有の要件をサポートします
- 各言語に適した改行処理を実装します
地域ごとの機能
住所形式
- 地域ごとの形式に合わせて住所フォームを調整します
- 国際電話番号の形式をサポートします
- 国ごとの郵便番号/ZIP コードの検証に対応します
- 国固有のフォーム検証を実装します
計量単位
- メートル法とヤード・ポンド法をサポートします
- ロケールに適した単位を表示します
- ユーザーによる設定の上書きを可能にします
- 値を正確に換算します
暦と時刻
- 異なる暦体系(グレゴリオ暦、ヒジュラ暦など)をサポートします
- タイムゾーンの表示設定に対応します
- 週の開始曜日(曜日を日曜または月曜にする設定など)をサポートします
- 適切な日付形式を表示します
テストと品質保証
ローカライズテスト
- 各ロケールのネイティブスピーカーでテストします
- 実際に翻訳されたコンテンツを使ってレイアウトを検証します
- すべての日付、数値、通貨の形式をテストします
- RTL レイアウトが正しく機能することを確認します
自動チェック
- 翻訳の欠落を検出する仕組みを実装します
- コード内のハードコードされた文字列をチェックします
- 翻訳ファイルの形式と完全性を検証します
- 翻訳品質の問題を監視します
疑似ローカライズ
- 開発中に疑似ローカライズを使用します
- ハードコードされた文字列を早期に検出します
- UI がテキストの拡張に対応できることを確認します
- 文字エンコーディングのサポートをテストします
コンテンツ配信
言語検出
- ブラウザー/デバイスの設定からユーザーの言語を検出します
- URL によるロケール切り替え(/en/、/es/、/fr/)をサポートします
- ユーザーの言語設定を保持します
- 適切なフォールバックの仕組みを実装します
パフォーマンスの最適化
- 名前空間ごとに翻訳ファイルを遅延読み込みします
- 翻訳を適切にキャッシュします
- 静的な翻訳ファイルに CDN を使用します
- 初期翻訳バンドルのサイズを最小限に抑えます
統合のベストプラクティス
状態管理
- ロケール設定をユーザー設定に保存します
- ログイン時にデバイス間で設定を同期します
- ページ全体を再読み込みせずにロケールを変更できるようにします
- ロケールの切り替え時にすべてのコンポーネントを更新します
API 統合
- API リクエストにロケールを渡します
- 適切な場合はバックエンドからローカライズされたコンテンツを返します
- サーバー側のロケールネゴシエーションに対応します
- コンテンツネゴシエーションヘッダーをサポートします
コメント
Markdown 対応