名前空間とスコープによるi18nキーの整理
保守性のために翻訳キーを名前空間とスコープに整理する方法を学びます。ページ別、コンポーネント別、機能別、共有名前空間の戦略をカバーし、スケーラブルなi18nを実現します。
Key Structure
詳細な説明
i18nキーの名前空間整理
アプリケーションが成長すると、翻訳ファイルは数千のキーに達する可能性があります。名前空間は翻訳を論理的なグループに分割し、ファイルを管理しやすくし、パフォーマンスのためのコード分割を可能にします。
名前空間とは?
名前空間は翻訳キーのトップレベルのグループ分けです。ほとんどのi18nライブラリでは、各名前空間が別のファイルにマッピングされます:
locales/
en/
common.json # 共有文字列(ボタン、ラベル、エラー)
home.json # ホームページ固有の文字列
settings.json # 設定ページ固有の文字列
auth.json # ログイン、サインアップ、パスワードリセット
名前空間戦略
1. ページ別名前空間
各ページに独自の名前空間:コンテンツが多いサイト(マーケティングサイト、CMS駆動アプリ)に最適。
2. コンポーネント別名前空間
各再利用可能コンポーネントに独自の名前空間:コンポーネントライブラリやデザインシステムに最適。
3. 機能別名前空間
各機能モジュールに独自の名前空間:機能チームがコードベースの異なる部分を所有する大規模アプリケーションに最適。
4. 共有 + ページハイブリッド
共有文字列用のcommon名前空間と、ユニークなコンテンツ用のページ名前空間を組み合わせ:ほとんどのアプリケーションに最適。
名前空間のベストプラクティス
common名前空間は小さく保つ(200キー以下)-- 真に共有される文字列のみ- 4レベルより深くネストしない
- すべてのロケールで一貫した名前空間名を使用
- シングルページアプリケーションではパフォーマンスのために名前空間を遅延ロード
- プロジェクトのREADMEや貢献ガイドに名前空間戦略を文書化
ユースケース
名前空間の整理は、プロジェクトが500翻訳キーを超えて成長すると重要になります。早期に名前空間計画を省略したチームは、後で痛みを伴うリファクタリングに直面することがよくあります。i18nキージェネレーターのプレフィックス機能を使えば、生成されたキーを任意の名前空間にスコープでき、最初から新しい文字列を正しい名前空間に割り当てることが容易になります。