アダプティブフォームのローカライゼーション用に新しいロケールをサポート

AEM Formsでは、英語 (en)、スペイン語 (es)、フランス語 (fr)、イタリア語 (it)、ドイツ語 (de)、日本語 (ja)、ポルトガル語 — ブラジル語 (pt-BR)、中国語 (zh-TW)、韓国語 (ko-KR) のロケールを初期設定でサポートしています。 Hindi(hi_IN) のように、より多くのロケールのサポートを追加することもできます。

ロケールの辞書について

アダプティブフォームのローカライゼーションは、次の 2 種類のロケール辞書に基づいています。

  • フォーム固有の辞書​は、アダプティブフォーム使用する文字列を含みます。例えば、ラベル、フィールド名、エラーメッセージ、ヘルプの説明などです。 各ロケールごとに、XLIFF ファイルのセットの形で管理されています。[author-instance]/libs/cq/i18n/gui/translator.html からアクセスできます。

  • グローバル辞書 2 つのグローバル辞書があり、AEM クライアントライブラリで JSON オブジェクトの形で管理されています。これらの辞書にはデフォルトのエラーメッセージ、12 か月の名前、通貨シンボル、日付と時間のパターンなどが含まれます。これらの辞書は、 [author-instance]/libs/fd/xfaforms/clientlibs/I18N. これらの場所には、ロケールごとに別々のフォルダーが含まれます。 グローバル辞書は頻繁に更新されないので、各ロケールで別々の JavaScript ファイルを保持することで、同じサーバー上の異なるアダプティブフォームにアクセスする際にブラウザーがそれらをキャッシュし、ネットワーク帯域幅の使用量を削減できます。

新しいロケールのサポートを追加

新しいロケールのサポートを追加する手順は、次のとおりです。

  1. サポートされていないロケールにローカリゼーションのサポートを追加する
  2. Adaptive Formsで追加されたロケールを使用する

サポートされていないロケールにローカリゼーションのサポートを追加する

AEM Formsでは現在、アダプティブFormsコンテンツのローカライゼーションを英語 (en)、スペイン語 (es)、フランス語 (fr)、イタリア語 (it)、ドイツ語 (de)、日本語 (ja)、ポルトガル語 — ブラジル語 (pt-BR)、中国語 (zh-TW)、韓国語 (ko-KR) のロケールでサポートしています。

アダプティブフォーム実行時に新しいロケールのサポートを追加するには、次を参照してください。

  1. リポジトリを複製
  2. GuideLocalizationService へのロケールの追加
  3. locale-name 固有のフォルダーを追加
  4. 辞書のロケールサポートの追加
  5. リポジトリ内の変更をコミットし、パイプラインをデプロイします。

1.リポジトリのクローンを作成します。

  1. コマンドラインから、FormsCloud Serviceリポジトリのクローン先に移動します。
  2. 次のコマンドを実行します。 Cloud Manager から取得したもの。 これは次のようになります。 git clone https://git.cloudmanager.adobe.com/<my-org>/<my-program>/.
  3. git のユーザー名とパスワードを使用して、リポジトリを複製します。
  4. クローンされたFormsCloud Serviceリポジトリフォルダーを任意のエディターで開きます。

2.ロケールを Guide Localization サービスに追加する

  1. Guide Localization Service.cfg.json ファイルを作成し、追加するロケールを、サポート対象のロケールのリストに追加します。

    メモ

    という名前のファイルを作成します。 Guide Localization Service.cfg.json ファイルに含めます(存在しない場合)。

3.ロケール名固有のフォルダークライアントライブラリを追加する

  1. UI.content フォルダーで、 etc/clientlibs フォルダー。
  2. さらに、という名前のフォルダーを作成します。 locale-name under etc/clientlibs xfa および af clientlibs のコンテナとして機能します。
3.1 ロケール用の XFA クライアントライブラリを locale-name フォルダーに追加する

という名前のノードを作成します。 [locale-name]_xfa と入力します。 cq:ClientLibraryFolder under etc/clientlibs/locale_name、カテゴリ xfaforms.I18N.<locale>をクリックし、次のファイルを追加します。

  • /etc/clientlibs/fd/xfaforms/I18N/ja/I18N で定義されている <locale>xfalib.locale.Strings を定義している I18N.js
  • 以下を含む js.txt ファイル。
    /libs/fd/xfaforms/clientlibs/I18N/Namespace.js I18N.js /etc/clientlibs/fd/xfaforms/I18N/LogMessages.js
3.2.ロケール locale-name フォルダー用のアダプティブフォームクライアントライブラリを追加する
  1. という名前のノードを作成します。 [locale-name]_af と入力します。 cq:ClientLibraryFolder under etc/clientlibs/locale_name、カテゴリを guides.I18N.<locale> および依存関係 xfaforms.3rdparty, xfaforms.I18N.<locale> および guide.common.

  2. という名前のフォルダーを作成します。 javascript 次のファイルを追加します。

    • i18n.jsguidelib.i18n を定義し、datePatterns の「calendarSymbols」、timePatternsdateTimeSymbolsnumberPatternsnumberSymbolscurrencySymbolstypefaces<locale> のパターンを持つファイルです。これらはロケールセットの仕様に記載されている XFA 仕様に従います。
    • LogMessages.js は、/etc/clientlibs/fd/af/I18N/fr/javascript/LogMessages.js で定義された <locale>guidelib.i18n.stringsguidelib.i18n.LogMessages を定義します。
  3. 追加 js.txt には、次の情報が含まれます。

      i18n.js
      LogMessages.js
    

4.辞書のロケールサポートを追加する

追加する <locale> が、endeesfritpt-brzh-cnzh-twjako-kr 以外の場合にのみ、この手順を実行してください。

  1. フォルダーの作成 languages under etc(まだ存在しない場合)

  2. 既に存在しない場合は、複数の値を持つ文字列プロパティ languages をノードに追加します。

  3. 既に存在しない場合は、<locale-name>デフォルトのロケール値deesfritpt-brzh-cnzh-twjako-kr を追加します。

  4. <locale>/etc/languageslanguages プロパティの値に追加します。

  5. 新しく作成したフォルダーを filter.xml etc/META-INF/の下[フォルダー階層] 形式:

    <filter root="/etc/clientlibs/[locale-name]"/>
    <filter root="/etc/languages"/>
    

変更をAEM Git リポジトリにコミットする前に、 Git リポジトリ情報.

5.リポジトリ内の変更をコミットし、パイプラインをデプロイします

新しいロケールサポートを追加した後、変更を GIT リポジトリにコミットします。 フルスタックパイプラインを使用してコードをデプロイします。 学ぶ パイプラインの設定方法 新しいロケールサポートを追加する。
パイプラインが完了すると、新しく追加されたロケールがAEM環境に表示されます。

アダプティブFormsで追加されたロケールを使用する

新しく追加されたロケールを使用してアダプティブフォームを使用およびレンダリングするには、次の手順を実行します。

  1. AEM オーサーインスタンスにログインします。
  2. に移動します。 Forms > Formsとドキュメント.
  3. アダプティブフォームを選択し、 辞書を追加 および 辞書を翻訳プロジェクトに追加 ウィザードが表示されます。
  4. 次を指定: プロジェクトタイトル をクリックし、 ターゲット言語 を選択します。 辞書を翻訳プロジェクトに追加 ウィザード。
  5. クリック 完了 作成した翻訳プロジェクトを実行します。
  6. アダプティブフォームを選択し、 プレビューをHTML.
  7. 追加 &afAcceptLang=<locale-name> アダプティブフォームの URL 内で使用する必要があります。
  8. ページを更新すると、アダプティブフォームは指定されたロケールでレンダリングされます。

アダプティブフォームのロケールを識別する方法は 2 つあります。 アダプティブフォームがレンダリングされると、リクエストされたロケールが次のように識別されます。

  • の取得 [local] セレクターを使用して、アダプティブフォームの URL 内で選択することができます。 URL の形式は、http://host:[port]/content/forms/af/[afName].[locale].html?wcmmode=disabled です。[local] セレクターを使用すると、アダプティブフォームをキャッシュできます。

  • リストに表示された順序で次のパラメーターを取得します。

    • リクエストパラメーターafAcceptLang
      ユーザーのブラウザーロケールを上書きするには、
      afAcceptLang リクエストパラメーターを渡して、ロケールを強制します。例えば、次の URL は、強制的にカナダ語とフランス語のロケールでフォームをレンダリングします。
      https://'[server]:[port]'/<contextPath>/<formFolder>/<formName>.html?wcmmode=disabled&afAcceptLang=ca-fr

    • ユーザー向けに設定されるブラウザーのロケールです。これは、Accept-Language ヘッダーを使用したリクエストで指定されます。

リクエストされたロケールでクライアントライブラリが存在しない場合、ロケールに含まれる言語コードがクライアントライブラリに存在しないかチェックします。例えば、要求されたロケールが en_ZA (南アフリカ英語)と en_ZA が存在しない場合、アダプティブフォームは次のクライアントライブラリを使用します: en (英語)言語(存在する場合)。 ただし、どちらも存在しない場合、アダプティブフォームでは en ロケールの辞書が使用されます。

ロケールが識別されると、アダプティブフォームはフォーム固有の辞書を選択します。 リクエストされたロケールのフォーム固有の辞書が見つからない場合、アダプティブフォームが作成されている言語用の辞書が使用されます。

ロケール情報が存在しない場合、アダプティブフォームはフォームの元の言語で配信されます。元の言語は、アダプティブフォームの開発時に使用する言語です。

取得 サンプルクライアントライブラリ 新しいロケールのサポートを追加する場合。 必要なロケールでフォルダーのコンテンツを変更する必要があります。

新しいローカライゼーションをサポートするためのベストプラクティス

  • Adobeは、アダプティブフォームを作成した後に翻訳プロジェクトを作成することをお勧めします。

  • 既存のアダプティブフォームに新しいフィールドが追加された場合:

    • 機械翻訳の場合:辞書を再作成し、翻訳プロジェクトを実行します。 翻訳プロジェクトの作成後にアダプティブフォームに追加されたフィールドは、未翻訳のままです。
    • 人間による翻訳の場合:辞書の書き出しに使用する手順 [server:port]/libs/cq/i18n/gui/translator.html. 新しく追加されたフィールドの辞書を更新し、アップロードします。

このページ