トランスレーターを使用した辞書の管理 using-translator-to-manage-dictionaries
AEM には、コンポーネント UI で使用される様々な翻訳テキストを管理するためのコンソールが用意されています。このコンソールの入手先
https://<hostname>:<port-number>/libs/cq/i18n/translator.html
トランスレーターツールを使用して、英語の文字列とその翻訳を管理します。辞書はリポジトリ(例:/apps/myproject/i18n)に作成されます。
トランスレーターツールとユーザー管理辞書は、異なる言語でコンポーネント UI を表します。ページやユーザー生成コンテンツを翻訳する場合は、多言語サイト用コンテンツの翻訳およびユーザー生成コンテンツの翻訳を参照してください。
/apps
の下にある辞書のみを編集してください。/libs
の下にあります。トランスレーターでは、AEM で使用されるテキストと様々な言語の翻訳が横並びになってリストされます。
英語のテキストと翻訳されたテキストを検索、フィルター、および編集できます。翻訳用に辞書を XLIFF 形式で書き出したり、翻訳結果を辞書に読み込んだりすることもできます。
また、このコンソールから、i18n 辞書を翻訳プロジェクトに追加することもできます。プロジェクトを作成することも、既存プロジェクトに追加することもできます。
-
「辞書を翻訳」をクリックします。
-
必要に応じて、「作成」オプションまたは「追加」オプションを選択します。ダイアログが表示されます。
-
必要に応じてフィールドに入力し、「OK」をクリックします。
-
「OK」をクリックするか、ターゲット辞書を表示することができます。
note note NOTE 翻訳プロジェクトについて詳しくは、翻訳プロジェクトの管理を参照してください。
辞書の作成 creating-a-dictionary
ローカライズされた UI 文字列の管理用の辞書を作成します。辞書を作成したら、トランスレーターツールを使用して管理できます。
-
CRXDE Lite を使用して、新しい辞書のルートノード(
sling:Folder
)を追加します。これは、言語定義を保持する構造です。/apps/<projectName>/i18n
例:
/apps/myProject/i18n
-
必要な言語構造をこのルートの下に追加します。次に例を示します。
code language-shell /apps/myProject/i18n [sling:Folder] - de.json [nt:file] [mix:language] + jcr:language = de - fr.json [nt:file] [mix:language] + jcr:language = fr
note note NOTE これは Sling i18n モジュールの構造です。 -
トランスレーターを再読み込みします。辞書のパス(例:
/apps/myProject/i18n
)がツールバーのドロップダウンセレクターで選択できるようになります。このパスを選択して、文字列とその翻訳の追加を開始します。note note NOTE トランスレーターで保存されるのは、パス(例: /apps/myProject/i18n
)の下に実際に存在する言語の翻訳のみです。これらがグリッドに表示される言語に対応していることを確認してください。
辞書の文字列の管理 managing-dictionary-strings
トランスレーターツールを使用して、辞書内の文字列を管理します。英語の文字列を追加、変更、削除したり、翻訳文字列を指定したりできます。
/apps
の下にある辞書のみを編集します。/libs
の下にあります。文字列を追加、変更、および削除する adding-changing-and-removing-strings
コンポーネントが国際化された辞書に英語の文字列を追加します。使用しない文字列を翻訳してリソースを無駄にしないように、国際化される文字列のみを追加します。
辞書に追加する文字列は、コードで指定されている文字列と正確に一致する必要があります。コードで使用されているデフォルトの英語文字列と辞書の英語文字列が一致していないと、翻訳された文字列が必要時に UI に表示されません。文字列では大文字と小文字が区別されます。
翻訳のヒントを入力する
辞書の文字列の「コメント」プロパティを使用して、文字列の意味を明確に伝える情報をトランスレーターに提供します。UI は通常、ユーザーが曖昧な単語の意味を特定するのに役立ちます。ただし、トランスレーターは UI のコンテキスト内で文字列を確認するわけではありません。翻訳のヒントは、この曖昧さを解消します。例えば、Request という英単語が動詞ではなく名詞として使用されていることをコメントによって明確にします。
翻訳のヒントは、同じ文字列に複数の意味がある場合、それらを区別するのにも役立ちます。例えば、「Search」という単語は名詞と動詞の両方で使用されるので、辞書には異なる翻訳のヒントを持つ 2 つの「Search」のエントリが必要です。正しい文字列が UI で使用されるように、この文字列をリクエストするコードには翻訳のヒントも含まれます。
インデックス付き変数を含める
ローカライズされる文字列に変数を追加し、センテンスに文脈に応じた意味を持たせます。例えば、Web アプリケーションにログインした後、ホームページに「Welcome back Administrator.You have 2 messages in your inbox.」と表示されるとします。ページのコンテキストに応じて、ユーザー名とメッセージ数が決定されます。
ローカライズされた文字列に変数を含めるには、get メソッドの最初の引数の変数の場所に、括弧で囲んだインデックスを置きます。翻訳のヒントを使用して値を説明します。言語によって使用する文の構造が異なるので、トランスレーターは変数の意味を理解する必要があります。
翻訳された文字列を要求するコードは、 コンテキストに従ってインデックス付き変数の値を指定します。
例えば次の文字列は、ユーザーが Web サイトにログインしたときに表示されるもので、辞書に含まれています。
Welcome back {0}. You have {1} messages.
次のコメントが変数の説明です。
{0} = the user name, {1} = the number of items in the user's inbox
文字列を変更する
英語の文字列がコード内で変更または削除された場合に、その文字列を変更または削除します。文字列を変更した場合、元の文字列は保持され、変更を反映した新しい文字列が作成されます。文字列を削除する前に、その文字列を使用しているコードがないことを確認してください。
文字列を追加するには、次の手順を実行します。
-
辞書ドロップダウンメニューで、文字列を追加する辞書を選択します。ドロップダウンメニューには、リポジトリ内の辞書のパスが表示されます。
-
「Strings and Translations(文字列と翻訳)」テーブルの上にある「追加」をクリックします。
-
文字列を追加ダイアログボックスの「文字列」ボックスに、英語の文字列を入力します。「コメント」ボックスに、必要に応じてトランスレーター用に翻訳のヒントを入力します。
-
「OK」をクリックします。
-
「保存」をクリックします。
辞書内の文字列を変更するには、次の手順を実行します。
-
辞書ドロップダウンメニューで、変更する文字列が含まれる辞書を選択します。
-
変更する文字列をダブルクリックします。
-
文字列を編集ダイアログボックスの「文字列またはコメントを変更(コピーを作成)」を選択します。
-
文字列またはコメントを変更して、「OK」をクリックします。
-
「保存」をクリックします。
辞書から文字列を削除するには、次の手順を実行します。
-
辞書ドロップダウンメニューで、文字列を削除する辞書を選択します。
-
「削除」をクリックします。
-
「保存」をクリックします。
文字列の検索 searching-for-strings
トランスレーターの下部にある検索バーには、文字列選択のオプションがあります。
-
テキストでフィルター: 英語の文字列、コメントまたは翻訳と照合するパターン。パターンの全体または一部に一致する項目のみがテーブルに表示されます。
-
変更:いずれか、変更済み、新規、削除: 変更されてまだ保存されていない項目を表示します。
- いすれか:変更、追加または削除された項目を表示します。
- 変更済み:変更された項目を表示します。
- 新規:追加された項目を表示します。
- 削除:削除された項目を表示します。
- 複数選択:選択されたプロパティに該当するすべての項目を表示します。
-
コメントあり:トランスレーター用のコメントがある項目を表示します。
-
翻訳の欠落:
少なくとも 1 つの言語の翻訳が欠落している項目を表示します。
- 検索バーで、フィルターオプションを選択します。
- オプションを使用してフィルター処理するには、「フィルター」をクリックします。
- フィルターを削除して辞書内のすべての項目を表示するには、「クリア」をクリックします。
翻訳された文字列の編集 editing-translated-strings
英語の文字列を辞書に追加した後、その文字列の翻訳を追加できます。サードパーティに翻訳を依頼するために辞書を書き出すこともできます。
-
プロジェクト専用の辞書を選択します(翻訳を保持するリポジトリ内のパスがその辞書で指定される場合)。例えば、次のように 辞書 を選択します。
/apps/myProject/i18n
note caution CAUTION 自身のプロジェクト用に作成された、 /apps
の下にある辞書のみを編集してください。AEM システム辞書もこのツールで使用できます。AEM システム辞書を変更すると AEM UI に問題が発生する可能性があるので、システム辞書は変更しないでください。また、アップグレードすると変更は失われます。AEM システム辞書は /libs
の下にあります。 -
いずれかの文字列の翻訳されたテキストを編集するには、次のどちらかの手順を使用します。
- 単一のテキストを編集する目的の文字列に適した言語をダブルクリックします。
- 目的の文字列の「文字列」フィールドまたは「コメント」フィールドをダブルクリックして、文字列を編集 ダイアログを開き、必要に応じて翻訳を編集します。「OK」をクリックしてダイアログを閉じます。
-
ツールバーの「保存」をクリックして変更をコミットします。
note note NOTE 「保存」の代わりに「リセットして更新」をクリックすると、以前のテキストに対する変更がすべて元に戻ります。
サードパーティのトランスレーターの使用 using-third-party-translators
サードパーティの翻訳サービスの使用をサポートするために、翻訳ツールで辞書を書き出したり、読み込んだりできます。
辞書の書き出し exporting-a-dictionary
サードパーティのサービスが辞書の文字列を翻訳できるように、辞書を XLIFF ファイルに書き出します。
- 辞書を書き出して、英語と、ある言語の翻訳語を含めます。
- 英語の文字列のみの一部またはすべてを書き出します。
XLIFF ファイルを書き出してある言語を含める場合、リポジトリ内の辞書のノード構造がその言語を含んでいる必要があります。その言語が含まれていない場合はエラーが発生します。例えば、フランス語の XLIFF ファイルを書き出す場合、辞書のフォルダーには mix:language
という名前の fr
子ノードが含まれている必要があります(辞書の作成を参照)。
次の手順を使用して、特定の言語の XLIFF ファイルを書き出します。
-
トランスレーターツール
http://<host>:<port>/libs/cq/i18n/translator.html
を開く -
Dictionaries ドロップダウンメニューを使用して、書き出す辞書を選択します。
-
書き出し/すべての XX Xliff を書き出しオプションをクリックします。XX は DE や FR などの 2 文字の言語コードです。
新しいタブまたはウィンドウで XLIFF ファイルが開きます。
-
Web ブラウザーのコマンド(ファイル/名前を付けて保存など)を使用して、ページをファイルとしてファイルシステム上に保存します。
次の手順を使用して、英語の文字列のみのすべてまたは一部を書き出します。
- トランスレーターツールを開きます。
http://<host>:<port>/libs/cq/i18n/translator.html
- Dictionaries ドロップダウンメニューを使用して、書き出す辞書を選択します。
- 文字列のサブセットを書き出す場合は、辞書内の書き出す項目を選択します。項目を選択しない場合は、すべての項目が書き出されます。
- 書き出し/選択対象を Xliff として書き出し (文字列のみ) をクリックします。
- 表示されたダイアログボックスで、テキストをコピーしてテキストファイルに貼り付けます。
辞書の読み込み importing-a-dictionary
XLIFF ファイルを辞書に読み込んで情報を入力します。辞書にある英語の文字列の翻訳が含まれていて、XLIFF ファイルに同じ文字列の異なる翻訳が含まれている場合、辞書の翻訳が置き換えられます。
- トランスレーターツール
http://<host>:<port>/libs/cq/i18n/translator.html
を開く - 読み込み/XLIFF 翻訳をクリックします。
- 読み込むファイルを選択して、「OK」をクリックします。
サポートされる言語の管理 managing-supported-lanuages
トランスレーターツールがサポートし、web ページのユーザーに提供される言語を追加または削除します。
辞書テーブルにリストされている言語の変更 changing-languages-listed-in-the-dictionary-table
トランスレーターツールの辞書テーブルには、次の言語が含まれています。
- de - ドイツ語
- fr - フランス語
- it - イタリア語
- es - スペイン語
- ja - 日本語
- pt-br - ポルトガル語(ブラジル)
- zh-cn - 簡体字中国語
- zh-tw - 繁体字中国語(限定的にサポート)
- ko-kr - 韓国語
次の手順を使用して、言語を追加または削除します。
-
CRXDE Lite を使用して新しいノードを作成します。
/etc/languages
-
このノードでプロパティを作成します。
-
名前:
languages
-
型:
Multi-String
-
値:表示する言語のリスト。次に例を示します。
- fr
- es
note note NOTE 言語コードは小文字で指定する必要があります。 -
-
CRXDE Lite で「すべて保存」をクリックして、トランスレーターを再読み込みします。定義された言語を表示するようにグリッドが更新されます。
note note NOTE トランスレーターで保存されるのは、実際に辞書に存在する( /apps/myProject/i18n
などの辞書のパスの下に存在する)言語の翻訳のみです。これらがグリッドに表示される言語に対応していることを確認してください。
作成者が言語を使用できるようにする making-languages-available-to-authors
AEM インスタンスで新しい言語の辞書を定義したら、作成者がその言語を選択できるようにする必要があります(環境設定 で使用する場合など)。
-
セキュリティ コンソールの 環境設定 で使用可能な言語のリストを変更するには、次の手順を実行します。
-
アプリケーションコードに次のコードのオーバーレイを作成します。
code language-none /libs/cq/security/widgets/source/widgets/security/Preferences.js and update as required.
-
-
Web サイト コンソールから、環境設定 で言語を使用できるようにするには、アプリケーションで次の変更をおこなう必要があります。
-
次の場所にある構造のオーバーレイを作成します。
/libs/cq/security/content/tools/userProperties
-
オーバーレイ内で、次の場所にある言語のリストを更新します。
items/common/items /lang/options
-
-
すべての項目を保存して、適切なコンソールを再読み込みします。
言語名とデフォルトの国の変更 changing-language-names-and-default-countries
様々な国が同じ言語を使用しています。例えば、米国、英国、オーストラリアではすべて英語を使用しています。これは、en_US
、en_GB
、en_AU
のように、言語と国の両方を示すコードで示されます。
デフォルトの国はフラグを表示する際に(言語コピーダイアログなどで)使用され、言語コードの国を解決します。
en_uk
を使用する場合は、en_uk
の辞書がリポジトリに存在する必要があります。デフォルトの定義を変更するには:
-
言語リストは次の場所に格納されます。
/libs/wcm/core/resources/languages
このリストを次の場所にコピーしてオーバーレイします。
/apps/wcm/core/resources/languages
次に、ここにあるリストを変更または拡張します。言語ノード(例:
ja
)上のプロパティdefaultCountry
には、完全なコード(jp
を言語ja
のデフォルトの国として定義するja_jp
など)の完全なコードを含める必要があります。 -
CQ WCM 言語マネージャー を更新します。
-
言語リスト:
リポジトリ内の言語リストのパス。オーバーレイに使用する場所に設定するには:
code language-none /apps/wcm/core/resources/languages
OSGi web コンソールを使用してこの設定を行うことができます。
code language-shell https://<hostname>:<port-number>/system/console/configMgr/com.day.cq.wcm.core.impl.LanguageManagerImpl
-
辞書の公開 publishing-dictionaries
辞書を AEM アプリケーションのリリース管理プロセスに組み込みます。例えば、アプリケーションのコンテンツパッケージ内の辞書を、デプロイメント用にパブリッシュインスタンスに含めます。この方法には次のような利点があります。
- パブリッシュ環境内の複数のコンポーネントで辞書を利用できます。
- コンポーネント UI 文字列への変更が、更新された翻訳と共にデプロイされます。
同様に、辞書の文字列のテストが、通常のソフトウェア開発ライフサイクルの一環として実行されます。