翻訳ファイル間のi18nキー重複の回避
サイレントな上書きと一貫性のない翻訳を引き起こす重複i18n翻訳キーの防止戦略。検出ツール、共有キー名前空間、組織パターンをカバーします。
Best Practices
詳細な説明
i18nキー重複の回避
重複する翻訳キーは、一つの値が警告なしに別の値を置き換えるサイレントな上書きを引き起こします。複数の貢献者がいる大規模プロジェクトでは、重複は驚くほど一般的で、本番環境で不正確な翻訳が表示される可能性があります。
重複の種類
- 完全一致の重複キー -- 同じファイル内の同一キーの2つのエントリ
- 意味的重複 -- 同じ値を持つ異なるキー
- ファイル間重複 -- 複数の名前空間ファイルで定義された同じキー
防止戦略
共有キー名前空間
複数の場所で使用される文字列用のcommon名前空間を作成し、すべてのコンポーネントが独自に定義する代わりに参照します。
キー衝突検出
衝突を検出するツールを使用:i18nキージェネレーター、eslint-plugin-i18n-json、i18next-parserなど。
重複が許容される場合
同じ英語テキストでも異なるキーを持つべき場合があります:
- 他の言語で異なる翻訳が必要な場合(コンテキスト依存)
- 同じ単語が異なるコンテキストで異なる意味を持つ場合
- UI制約により異なる配置で異なる長さが必要な場合
ユースケース
キーの重複は、プロジェクトサイズに比例して増大するメンテナンス負担です。2000キーと5言語のプロジェクトでは、各不要な重複は5つの追加翻訳エントリの維持を意味します。重複の検出と防止により、翻訳者の時間を節約し、ユーザーに表示される一貫性のない翻訳のリスクを軽減します。