国际化组件 internationalizing-components

将组件和对话框国际化,以便它们的UI字符串能够以不同的语言显示。 通过为国际化而设计的组件,可以将UI字符串外部化、翻译然后导入存储库。 在运行时,用户的语言首选项或页面区域设置决定了UI中显示的语言。

chlimage_1-9

请使用以下流程将组件国际化,并提供不同语言的UI:

  1. 使用国际化字符串的代码实施组件。您的代码标识要翻译的字符串,并选择要在运行时呈现的语言。

  2. 创建词典添加要翻译的英文字符串。

  3. 将字典导出为XLIFF格式,翻译字符串,然后导入 XLIFF文件并返回AEM。 或者,您也可以手动将翻译添加到词典。

  4. 将字典合并到应用程序的发行管理流程中

NOTE
这里介绍的用于国际化组件的方法用于翻译静态字符串。 当需要更改组件字符串时,您应使用传统的翻译工作流。 例如,当作者可以使用组件的“编辑”对话框中的属性编辑UI字符串时,不应使用语言词典对该字符串进行国际化。

语言词典 language-dictionaries

AEM国际化框架使用存储库中的词典存储英语字符串及其翻译的其他语言。 该框架使用英语作为默认语言。 字符串使用它们的英文版本进行标识。 通常,国际化框架使用字母数字ID作为UI字符串。 将字符串的英文版本用作ID具有以下几个优势:

  • 代码易于阅读。
  • 默认语言始终可用。

本地化的字符串可以存储在存储库的多个字典中。 AEM系统字典位于/libs节点下。 您可以为/apps节点下的组件创建字典。 AEM国际化框架将组合词典,并将它们作为单个ResourceBundle对象在Sling中提供。 呈现组件时,组件会从资源包中检索翻译后的字符串。 组合词典还以JSON格式部署在Web服务器上,以便在网页中提供转换为JavaScript代码的字符串。

此外,翻译工具允许您从一个中心位置管理所有字典。

chlimage_1-10

NOTE
请勿修改位于/libs节点下的AEM系统词典。

在系统词典中覆盖字符串 overlaying-strings-in-system-dictionaries

/apps节点下的字典中的字符串会覆盖/libs节点下的字典中的重复字符串。 如果您的组件使用AEM系统词典中包含的字符串,请将该字符串复制到您自己的词典中。 所有组件都将使用词典中的字符串。

请注意,无法预测在全部位于/apps节点下的词典中复制字符串时使用的翻译。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2