支持自适应Forms本地化的新区域设置 supporting-new-locales-for-adaptive-forms-localization

Adobe 建议使用现代、可扩展的数据捕获核心组件,以创建新的自适应表单将自适应表单添加到 AEM Sites 页面。这些组件代表有关创建自适应表单的重大改进,确保实现令人印象深刻的用户体验。本文介绍了使用基础组件创作自适应表单的旧方法。

版本
文章链接
AEM 6.5
单击此处
核心组件
单击此处
Foundation 组件
本文

AEM Forms为英语(en)、西班牙语(es)、法语(fr)、意大利语(it)、德语(de)、日语(ja)、葡萄牙语 — 巴西语(pt-BR)、中文(zh-CN)、中文 — 台湾(zh-TW)和韩语(ko-KR)语言环境提供开箱即用支持。 您还可以添加对更多区域设置的支持,如印地语(hi_IN)。

了解区域设置词典 about-locale-dictionaries

自适应表单的本地化依赖于两种类型的区域设置词典:

  • 表单特定词典 包含自适应表单中使用的字符串。 例如,标签、字段名称、错误消息、帮助说明。 它作为每个区域设置的一组XLIFF文件进行管理,您可以在以下位置访问它: [author-instance]/libs/cq/i18n/gui/translator.html.

  • 全局词典 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)本地化自适应Forms内容。

要在自适应Forms运行时添加新区域设置支持,请执行以下操作:

1.克隆存储库 clone-the-repository

  1. 在命令行中,导航到要克隆FormsCloud Service存储库的位置。
  2. 执行您指定的命令 从Cloud Manager检索。 它类似于 git clone https://git.cloudmanager.adobe.com/<my-org>/<my-program>/.
  3. 使用Git用户名和密码克隆存储库。
  4. 在首选编辑器中打开克隆的FormsCloud Service存储库文件夹。

2.向指南本地化服务添加区域设置 add-a-locale-to-the-guide-localization-service

  1. 找到 Guide Localization Service.cfg.json 文件并添加要添加到支持的区域设置列表中的区域设置。

    note note
    NOTE
    创建名称为的文件 Guide Localization Service.cfg.json 文件(如果尚未存在)。

3.添加特定于区域设置名称的文件夹客户端库 add-locale-name-specific-folder

  1. 在UI.content文件夹中,创建 etc/clientlibs 文件夹。
  2. 进一步创建名为的文件夹 locale-nameetc/clientlibs 用作xfa和af clientlibs的容器。
3.1在区域设置名称文件夹中添加区域设置的XFA客户端库

创建名为的节点 [locale-name]_xfa 并键入为 cq:ClientLibraryFolderetc/clientlibs/locale_name,使用类别 xfaforms.I18N.<locale>,并添加以下文件:

  • I18N.js 定义 xfalib.locale.Strings 对于 <locale> 中的定义 /etc/clientlibs/fd/xfaforms/I18N/ja/I18N.
  • js.txt 包含以下内容:
    /libs/fd/xfaforms/clientlibs/I18N/Namespace.js I18N.js /etc/clientlibs/fd/xfaforms/I18N/LogMessages.js
3.2.为区域设置名称文件夹添加自适应表单客户端库
  1. 创建名为的节点 [locale-name]_af 并键入为 cq:ClientLibraryFolderetc/clientlibs/locale_name,类别为 guides.I18N.<locale> 和依赖关系 xfaforms.3rdpartyxfaforms.I18N.<locale>guide.common.

  2. 创建名为的文件夹 javascript 并添加以下文件:

    • i18n.js 定义 guidelib.i18n,具有“calendarSymbols”模式, datePatternstimePatternsdateTimeSymbolsnumberPatternsnumberSymbolscurrencySymbolstypefaces 对于 <locale> 按照XFA规范,请参见 区域设置规范.
    • logmessages.js 定义 guidelib.i18n.stringsguidelib.i18n.LogMessages 对于 <locale> 中的定义 /etc/clientlibs/fd/af/I18N/fr/javascript/LogMessages.js.
  3. 添加 js.txt 包含以下内容:

    code language-none
      i18n.js
      LogMessages.js
    

4.为字典添加区域设置支持 add-locale-support-for-the-dictionary

仅当满足以下条件,才执行此步骤: <locale> 您添加的内容不属于 endeesfritpt-brzh-cnzh-twjako-kr.

  1. 创建文件夹 languagesetc,如果尚未存在。

  2. 添加多值字符串属性 languages 到节点(如果尚不存在)。

  3. 添加 <locale-name> 默认区域设置值 deesfritpt-brzh-cnzh-twjako-kr,如果尚未存在。

  4. 添加 <locale> 至的值 languages 属性 /etc/languages.

  5. 将创建的文件夹添加到 filter.xml 在etc/META-INF/下[文件夹层次结构] 作为:

    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环境中。

在自适应Forms中使用添加的区域设置 use-added-locale-in-af

执行以下步骤以使用新添加的区域设置来使用和渲染自适应表单:

  1. 登录到您的AEM创作实例。
  2. 转到 Forms > Forms和文档.
  3. 选择自适应表单并单击 添加字典将字典添加到翻译项目 出现向导。
  4. 指定 项目标题 并选择 目标语言将字典添加到翻译项目 向导。
  5. 单击 完成 并执行创建的翻译项目。
  6. 选择自适应表单并单击 HTML预览.
  7. 添加 &afAcceptLang=<locale-name> 在自适应表单的URL中。
  8. 刷新页面,自适应表单在指定的区域设置中呈现。

可以使用两种方法识别自适应表单的区域设置。 呈现自适应表单时,它通过以下方式标识请求的区域设置:

  • 正在检索 [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 区域设置。

标识区域设置后,自适应表单会选取特定于表单的词典。 如果未找到所请求区域设置的表单特定词典,则它会使用用于创作自适应表单的语言的词典。

如果未提供区域设置信息,则自适应表单将采用表单的原始语言交付。 原始语言是开发自适应表单时使用的语言。

获取 示例客户端库 以添加对新区域设置的支持。 您需要以所需的区域设置更改文件夹的内容。

支持新本地化的最佳实践 best-practices

  • Adobe建议在创建自适应表单之后创建翻译项目。

  • 在现有自适应表单中添加新字段时:

    • 对于机器翻译:重新创建词典并运行翻译项目。 创建翻译项目后添加到自适应表单的字段保持未翻译状态。
    • 对于人工翻译:导出词典,通过 [server:port]/libs/cq/i18n/gui/translator.html. 更新新添加字段的字典并上传。

另请参阅 see-also

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab