コンポーネントの国際化 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
ノード下にある辞書の文字列が重複する場合、どの翻訳が使用されるかを予測することはできません。