コンポーネントの国際化

最終更新日: 2023-12-07

コンポーネントとダイアログを国際化して、UI 文字列を異なる言語で表示できるようにします。 国際化対応のコンポーネントを使用すると、UI 文字列を外部化し、翻訳して、リポジトリに読み込むことができます。 実行時に、ユーザーの言語の環境設定またはページのロケールによって、UI に表示される言語が決まります。

chlimage_1-9

コンポーネントを国際化し、様々な言語で UI を提供するには、次の手順を実行します。

  1. 文字列を国際化するコードを使用してコンポーネントを実装します。 コードは、翻訳する文字列を識別し、実行時に表示する言語を選択します。

  2. 辞書を作成 および 追加 翻訳する英語の文字列です。

  3. 書き出し 辞書を XLIFF 形式に変換し、文字列を翻訳してから、 インポート XLIFF ファイルをAEMに戻します。 または、 手動で翻訳を追加する 辞書に追加します。

  4. 辞書をアプリケーションのリリース管理プロセスに組み込む.

メモ

コンポーネントの国際化に関してここで説明する方法は、静的文字列の翻訳を目的としています。 コンポーネント文字列が変更されると予想される場合は、従来の翻訳ワークフローを使用する必要があります。 例えば、作成者がコンポーネントの編集ダイアログのプロパティを使用して UI 文字列を編集できる場合、言語辞書を使用して文字列を国際化しないでください。

言語辞書

AEM国際化フレームワークは、リポジトリ内の辞書を使用して、英語の文字列とその翻訳を他の言語で保存します。 このフレームワークでは、デフォルト言語として英語が使用されます。 文字列は、英語バージョンを使用して識別されます。 通常、国際化フレームワークは、UI 文字列に英数字の ID を使用します。 ID として文字列の英語バージョンを使用すると、次のような利点があります。

  • コードは読みやすくなります。
  • デフォルト言語は常に使用可能です。

ローカライズされた文字列は、リポジトリ内の複数の辞書に保存できます。 AEM システム辞書は /libs ノードの下にあります。コンポーネント用の辞書は /apps ノードの下に作成できます。AEM 国際化フレームワークは辞書を統合して、Sling 内で 1 つの ResourceBundle オブジェクトとして使用できるようにします。コンポーネントがレンダリングされると、翻訳された文字列がリソースバンドルから取得されます。また、結合された辞書は JSON 形式で Web サーバーにデプロイされ、Web ページの JavaScript コードに翻訳された文字列を提供します。

また、トランスレーターツールを使用すると、すべての辞書を 1 つの場所で一元的に管理できます。

chlimage_1-10

メモ

/libs ノードの下にある AEM システム辞書を変更しないでください。

システム辞書内の文字列のオーバーレイ

/apps ノード下の辞書の文字列は、 /libs ノード下の辞書の重複する文字列を上書きします。AEMシステムディクショナリに含まれる文字列をコンポーネントで使用する場合は、独自のディクショナリにその文字列を複製します。 すべてのコンポーネントは、辞書の文字列を使用します。

/apps ノード下にある辞書の文字列が重複する場合、どの翻訳が使用されるかを予測することはできません。

このページ