使组件和对话框国际化,以便它们的UI字符串能够以不同的语言显示。 为国际化而设计的组件允许将UI字符串外部化、翻译,然后导入到存储库中。 运行时,用户的语言首选项或页面区域设置决定了UI中显示的语言。
使用以下过程可国际化您的组件并提供不同语言的UI:
使用可国际化字符串的代码实施组件。 您的代码标识要翻译的字符串,并选择要在运行时显示的语言。
导出 将字典转换为XLIFF格式,翻译字符串,然后 导入 XLIFF文件返回AEM。 或者,您可以 手动添加翻译 到字典里。
此处介绍的组件国际化方法用于翻译静态字符串。 当需要更改组件字符串时,您应使用传统的翻译工作流。 例如,当作者可以使用组件的“编辑”对话框中的属性编辑UI字符串时,不应使用语言词典对该字符串进行国际化。
AEM国际化框架使用存储库中的词典存储英语字符串及其翻译为其他语言。 该框架使用英语作为默认语言。 字符串使用其英文版本进行标识。 通常,国际化框架使用字母数字ID作为UI字符串。 将字符串的英文版本用作ID有以下几个好处:
本地化的字符串可以存储在存储库的多个字典中。 AEM系统词典位于 /libs
节点。 您可以在下面为组件创建字典 /apps
节点。 AEM国际化框架将字典组合在一起,在Sling中将它们作为单个字典使用 ResourceBundle
对象。 呈现组件时,它们会从资源包中检索已翻译的字符串。 组合词典还以JSON格式部署在Web服务器上,以便在网页中提供翻译后的字符串到Javascript代码。
此外, 翻译工具 让您从一个中心位置管理所有词典。
请勿修改位于以下位置的AEM系统词典 /libs
节点。
词典中的字符串位于 /apps
节点会覆盖位于以下位置的词典中的重复字符串 /libs
节点。 如果您的组件使用AEM系统词典中包含的字符串,请复制您自己的词典中的字符串。 所有组件都将使用词典中的字符串。
请注意,当字符串在全部位于以下位置的词典中复制时,您无法预测使用哪种翻译 /apps
节点。