コンポーネントの国際化

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

このページ

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now