コンポーネントの国際化 internationalizing-components
コンポーネントとダイアログを国際化して、UI 文字列を異なる言語で表示できるようにします。 国際化対応のコンポーネントを使用すると、UI 文字列を外部化し、翻訳して、リポジトリに読み込むことができます。 実行時に、ユーザーの言語の環境設定またはページのロケールによって、UI に表示される言語が決まります。
コンポーネントを国際化し、様々な言語で UI を提供するには、次の手順を実行します。
-
文字列を国際化するコードを使用してコンポーネントを実装します。 コードは、翻訳する文字列を識別し、実行時に表示する言語を選択します。
-
書き出し 辞書を XLIFF 形式に変換し、文字列を翻訳してから、 インポート XLIFF ファイルをAEMに戻します。 または、 手動で翻訳を追加する 辞書に追加します。
言語辞書 language-dictionaries
AEM国際化フレームワークは、リポジトリ内の辞書を使用して、英語の文字列とその翻訳を他の言語で保存します。 このフレームワークでは、デフォルト言語として英語が使用されます。 文字列は、英語バージョンを使用して識別されます。 通常、国際化フレームワークは、UI 文字列に英数字の ID を使用します。 ID として文字列の英語バージョンを使用すると、次のような利点があります。
- コードは読みやすくなります。
- デフォルト言語は常に使用可能です。
ローカライズされた文字列は、リポジトリ内の複数の辞書に保存できます。 AEM システム辞書は /libs
ノードの下にあります。コンポーネント用の辞書は /apps
ノードの下に作成できます。AEM 国際化フレームワークは辞書を統合して、Sling 内で 1 つの ResourceBundle
オブジェクトとして使用できるようにします。コンポーネントがレンダリングされると、翻訳された文字列がリソースバンドルから取得されます。統合された辞書も JSON 形式で web サーバーにデプロイされ、 web ページの JavaScript コードに翻訳された文字列を提供します。
また、トランスレーターツールを使用すると、すべての辞書を 1 つの場所で一元的に管理できます。
/libs
ノードの下にある AEM システム辞書を変更しないでください。システム辞書内の文字列のオーバーレイ overlaying-strings-in-system-dictionaries
/apps
ノード下の辞書の文字列は、 /libs
ノード下の辞書の重複する文字列を上書きします。AEMシステムディクショナリに含まれる文字列をコンポーネントで使用する場合は、独自のディクショナリにその文字列を複製します。 すべてのコンポーネントは、辞書の文字列を使用します。
/apps
ノード下にある辞書の文字列が重複する場合、どの翻訳が使用されるかを予測することはできません。