アダプティブフォームのローカライゼーションのための新しいロケールのサポート supporting-new-locales-for-adaptive-forms-localization
アダプティブフォームの新規作成または AEM Sites ページへのアダプティブフォームの追加には、最新の拡張可能なデータキャプチャコアコンポーネントを使用することをお勧めします。これらのコンポーネントは、アダプティブフォームの作成における大幅な進歩を表し、ユーザーエクスペリエンスの向上を実現します。この記事では、基盤コンポーネントを使用してアダプティブフォームを作成する古い方法について説明します。
AEM Forms が標準でサポートしているロケールは、英語(en)、スペイン語(es)、フランス語(fr)、イタリア語(it)、ドイツ語(de)、日本語(ja)、ブラジルポルトガル語(pt-br)、中国語(zh-tn)、台湾中国語(zh-tw)、韓国語(ko-kr)です。その他のロケール(ヒンディー語(hi_IN)など)のサポートを追加することもできます。
ロケールの辞書について about-locale-dictionaries
アダプティブフォームのローカリゼーションは、次の 2 種類のロケールの辞書に基づいています。
-
フォーム固有の辞書 は、アダプティブフォーム使用する文字列を含みます。例:ラベル、フィールド名、エラーメッセージ、ヘルプの説明など。ロケールごとに、XLIFF ファイルのセットとして管理されています。
[author-instance]/libs/cq/i18n/gui/translator.html
からアクセスできます。 -
グローバル辞書 2 つのグローバル辞書があり、AEM クライアントライブラリで JSON オブジェクトとして管理されています。これらの辞書にはデフォルトのエラーメッセージ、月名、通貨シンボル、日付と時間のパターンなどが含まれます。これらの辞書は
[author-instance]/libs/fd/xfaforms/clientlibs/I18N
にあります。これらの場所では、各ロケールごとに別々のフォルダーが用意されています。グローバルの辞書は頻繁に更新されることはありません。ロケールごとに個別の JavaScript ファイルを保持することで、ブラウザーはそれらをキャッシュし、同一サーバー上で異なるアダプティブフォームにアクセスする際に、ネットワーク帯域幅の使用量を減らすことができます。
新しいロケールへのサポートの追加 add-support-for-new-locales
新しいロケールへのサポートを追加する手順は、次のとおりです。
サポートされていないロケールにローカリゼーションのサポートを追加する add-localization-support-for-non-supported-locales
現在、AEM Forms がサポートしているアダプティブフォームコンテンツのロケールは、英語(en)、スペイン語(es)、フランス語(fr)、イタリア語(it)、ドイツ語(de)、日本語(ja)、ブラジルポルトガル語(pt-BR)、中国語(zh-CN)、台湾中国語(zh-TW)、韓国語(ko-KR)です。
アダプティブフォーム実行時に新しいロケールのサポートを追加するには、次を参照してください。
1. リポジトリのクローンを作成する clone-the-repository
- コマンドラインで、Forms Cloud Service リポジトリのクローン先に移動します。
- Cloud Manager から取得したコマンドを実行します。
git clone https://git.cloudmanager.adobe.com/<my-org>/<my-program>/
のようになります。 - git のユーザー名とパスワードを使用して、リポジトリのクローンを作成します。
- 任意のエディターで、クローン作成された FormsCloud Service リポジトリフォルダーを開きます。
2. ロケールを Guide Localization Service に追加する add-a-locale-to-the-guide-localization-service
-
Guide Localization Service.cfg.json
ファイルを見つけて、追加するロケールをサポート対象のロケールの一覧に追加します。note note NOTE まだ存在しない場合は、 Guide Localization Service.cfg.json
という名前のファイルを作成します。
3. ロケール名固有のフォルダークライアントライブラリを追加する add-locale-name-specific-folder
- UI.content フォルダーで、
etc/clientlibs
フォルダーを作成します。 - さらに、
etc/clientlibs
の下にlocale-name
という名前のフォルダーを作成して、xfa および af clientlibs のコンテナとして機能させます。
3.1 ロケール用の XFA クライアントライブラリを locale-name フォルダーに追加する
[locale-name]_xfa
という名前のノードを作成し、etc/clientlibs/locale_name
の下に cq:ClientLibraryFolder
と入力して、カテゴリ 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 フォルダーに追加する
-
[locale-name]_af
という名前のノードを作成し、etc/clientlibs/locale_name
の下にcq:ClientLibraryFolder
と入力します。カテゴリをguides.I18N.<locale>
、依存関係をxfaforms.3rdparty
、xfaforms.I18N.<locale>
およびguide.common
に指定します。 -
javascript
という名前のフォルダーを作成し、次のファイルを追加します。- i18n.js は
guidelib.i18n
を定義し、datePatterns
の「calendarSymbols」、timePatterns
、dateTimeSymbols
、numberPatterns
、numberSymbols
、currencySymbols
、typefaces
、<locale>
のパターンを持つファイルです。これらはロケールセットの仕様に記載されている XFA 仕様に従います。 - LogMessages.js は、
/etc/clientlibs/fd/af/I18N/fr/javascript/LogMessages.js
で定義された<locale>
のguidelib.i18n.strings
とguidelib.i18n.LogMessages
を定義します。
- i18n.js は
-
以下を含む js.txt を追加します。
code language-none i18n.js LogMessages.js
4. 辞書のロケールサポートを追加する add-locale-support-for-the-dictionary
追加する <locale>
が、en
、de
、es
、fr
、it
、pt-br
、zh-cn
、zh-tw
、ja
、ko-kr
以外の場合にのみ、この手順を実行してください。
-
まだ存在しない場合は、
etc
の下にフォルダーlanguages
を作成します。 -
既に存在しない場合は、複数の値を持つ文字列プロパティ
languages
をノードに追加します。 -
既に存在しない場合は、
<locale-name>
デフォルトのロケール値de
、es
、fr
、it
、pt-br
、zh-cn
、zh-tw
、ja
、ko-kr
を追加します。 -
<locale>
を/etc/languages
のlanguages
プロパティの値に追加します。 -
etc/META-INF/[folder hierarchy] の
filter.xml
に、作成したフォルダーを次のように追加します。code language-none <filter root="/etc/clientlibs/[locale-name]"/> <filter root="/etc/languages"/>
変更をAEM Git リポジトリにコミットする前に、Git リポジトリ情報にアクセスする必要があります。
5. リポジトリ内の変更をコミットし、パイプラインをデプロイする commit-changes-in-repo-deploy-pipeline
ロケールサポートを追加した後、変更を Git リポジトリにコミットします。フルスタックパイプラインを使用してコードをデプロイします。パイプラインの設定方法を学び、新しいロケールのサポートを追加します。
パイプラインが完了すると、新しく追加されたロケールが AEM 環境に表示されます。
アダプティブフォームで追加されたロケールの使用 use-added-locale-in-af
新しく追加されたロケールを使用してアダプティブフォームを使用しレンダリングするには、次の手順を実行します。
- AEM オーサーインスタンスにログインします。
- Forms/フォームとドキュメント に移動します。
- アダプティブフォームを選択し、「辞書を追加」をクリックすると、辞書を翻訳プロジェクトに追加 ウィザードが表示されます。
- プロジェクトタイトル を指定し、辞書を翻訳プロジェクトに追加 ウィザードのドロップダウンメニューから「ターゲット言語」を選択します。
- 「完了」をクリックし、作成した翻訳プロジェクトを実行します。
- アダプティブフォームを選択し、「HTML としてプレビュー」をクリックします。
- アダプティブフォームの URL に
&afAcceptLang=<locale-name>
を追加します。 - ページを更新すると、アダプティブフォームは指定されたロケールでレンダリングされます。
アダプティブフォームのロケールを識別する方法は 2 つあります。アダプティブフォームがレンダリングされると、リクエストされたロケールが次のように識別されます。
-
アダプティブフォームの URL の
[local]
セレクターを取得します。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
ロケールの辞書が使用されます。
ロケールが識別されると、アダプティブフォームはフォーム固有の辞書を選択します。要求されたロケールに対応するフォーム固有の辞書が見つからない場合、アダプティブフォームが作成された言語の辞書が使用されます。
ロケール情報が存在しない場合、アダプティブフォームはフォームの元の言語で配信されます。元の言語は、アダプティブフォームの開発時に使用する言語です。
サンプルクライアントライブラリを入手して、新しいロケールのサポートを追加してください。必要なロケールでフォルダーのコンテンツを変更する必要があります。
新しいローカライゼーションをサポートする上でのベストプラクティス best-practices
-
アドビは、アダプティブフォームの作成後に翻訳プロジェクトを作成することをお勧めします。
-
新しいフィールドが既存のアダプティブフォームに追加された場合:
- 機械翻訳の場合:辞書を再作成し、翻訳プロジェクトを実行します。 翻訳プロジェクトの作成後にアダプティブフォームに追加されたフィールドは、未翻訳になります。
- 人間による翻訳の場合:
[server:port]/libs/cq/i18n/gui/translator.html
から辞書を書き出します。 新しく追加されたフィールド用の辞書を更新し、アップロードします。
関連トピック see-also
- AEM アダプティブフォームの作成
- AEM Sites ページへの AEM アダプティブフォームの追加
- AEM アダプティブフォームへテーマを適用
- AEM アダプティブフォームへコンポーネントを追加
- AEM アダプティブフォームでの Captcha の使用
- AEM アダプティブフォームの PDF バージョン(DoR)の生成
- AEM アダプティブフォームを翻訳
- フォームの使用状況を追跡するアダプティブフォームの Adobe Analytics を有効にする
- Microsoft SharePoint へアダプティブフォームを接続
- Microsoft Power Automate へアダプティブフォームを接続
- Microsoft OneDrive へアダプティブフォームを接続
- Microsoft Azure Blob Storage へアダプティブフォームを接続
- Salesforce へアダプティブフォームを接続
- AEM アダプティブフォームで Adobe Sign を使用
- アダプティブフォームの新しいロケールを追加
- データベースへアダプティブフォームデータを送信
- REST エンドポイントへアダプティブフォームデータを送信
- AEM ワークフローへアダプティブフォームデータを送信
- フォームポータルを使用して AEM web サイト上の AEM アダプティブフォームを一覧表示
- アダプティブフォームへのバージョン管理、コメント、注釈の追加
- アダプティブフォームの比較