AEM提供了一个控制台,用于管理组件UI中使用的文本的各种翻译。 此控制台位于
https://<hostname>:<port-number>/libs/cq/i18n/translator.html
使用翻译工具管理英语字符串及其翻译。 词典在存储库中创建,例如/apps/myproject/i18n。
您管理的翻译工具及词典用于以不同语言呈现组件UI。 如果要翻译页面或用户生成的内容,请参阅 翻译多语言站点的内容 和 用户生成的内容的翻译.
仅编辑为项目创建并位于下的词典 /apps
.
此工具中还提供了AEM系统词典。 请勿更改AEM系统词典,因为这会导致AEM UI出现问题。 此外,升级时可能会丢失更改。 AEM系统词典位于 /libs
.
虽然Translator工具具有经典的UI界面,但它用于翻译短语,而不管这些短语位于哪个界面上。
翻译人员列出了AEM中使用的文本,以及各种语言翻译:
您可以搜索、筛选和编辑英语和已翻译文本。 您还可以将词典导出为XLIFF格式进行翻译,然后将翻译导入回词典中。
也可以从此控制台将i18n词典添加到翻译项目。 您可以创建一个项目或将其添加到现有项目中。
单击 翻译字典.
根据需要选择创建或添加选项。 这将打开一个对话框。
填写必填字段,然后单击“确定”。
您现在可以单击 确定 或者参阅目标词典。
有关翻译项目的更多信息,请阅读 管理翻译项目.
创建词典以管理本地化的UI字符串。 创建词典后,您可以使用翻译工具对其进行管理。
使用CRXDE Lite,添加根节点( sling:Folder
)作为保存语言定义的结构:
/apps/<projectName>/i18n
例如,/apps/myProject/i18n
在此根下添加所需的语言结构。 例如:
/apps/myProject/i18n [sling:Folder]
- de.json [nt:file] [mix:language]
+ jcr:language = de
- fr.json [nt:file] [mix:language]
+ jcr:language = fr
这是来自 Sling i18n模块.
重新加载翻译器和词典路径(例如, /apps/myProject/i18n
)将显示在工具栏的下拉选择器中。 选择此项以开始添加字符串及其翻译。
翻译人员将仅保存路径下实际存在的语言的翻译(例如, /apps/myProject/i18n
)。
确保这些语言与网格中显示的语言对应。
使用翻译工具管理词典中的字符串。 您可以添加、修改和删除英文字符串,还可以提供翻译后的字符串。
仅编辑为项目创建并位于下的词典 /apps
.
请勿更改AEM系统词典,因为这会导致AEM UI出现问题。 此外,升级时可能会丢失更改。 AEM系统词典位于 /libs
.
将英语字符串添加到组件已国际化的词典中。 仅添加国际化字符串,以便您不会通过翻译未使用的字符串而浪费资源。
添加到字典的字符串必须与代码中指定的字符串完全匹配。 如果代码中使用的默认英文字符串与词典中的英文字符串不匹配,则在需要时,翻译后的字符串不会出现在UI中。 字符串区分大小写。
提供翻译提示
使用词典字符串的Commenet属性向翻译人员提供信息以阐明字符串的含义。 通常,UI会帮助用户确定模糊单词的含义。 但是,翻译人员不会在UI的上下文中看到字符串。 翻译提示可消除歧义。 例如,注释可帮助翻译人员了解英语单词Request用作名词而不是动词。
翻译提示还可以区分相同且具有不同含义的字符串。 例如,Search一词可以是名词或动词,在词典中需要两个“Search”条目,并带有两个不同的翻译提示。 请求字符串的代码还包括翻译提示,以便在UI中使用正确的字符串。
包括索引变量
在本地化字符串中包含变量以将上下文含义构建到句子中。 例如,在登录到Web应用程序后,主页显示消息“欢迎返回管理员”。 您的收件箱中有2封邮件。” 页面上下文确定用户名和消息数。
要在本地化的字符串中包含变量,请将带括号的索引放置在get方法第一个参数中的变量位置。 使用本地化提示描述这些值。 翻译人员必须理解变量的含义,因为不同的语言使用不同的句子结构。
请注意 请求已翻译字符串的代码 根据上下文提供索引变量的值。
例如,当用户登录到网站并包含在词典中时,将显示以下字符串:
Welcome back {0}. You have {1} messages.
以下注释描述了变量:
{0} = the user name, {1} = the number of items in the user's inbox
修改字符串
在代码中更改或删除英文字符串时,更改或删除英文字符串。 更改字符串时,将保留原始字符串并生成一个反映更改的新字符串。 在删除字符串之前,请确保没有代码使用它。
使用以下过程可添加字符串。
在“词典”下拉菜单中,选择要向其添加字符串的词典。 在下拉菜单中,词典在存储库中由其路径表示。
在“字符串和翻译”表的上方,单击“添加”。
在“添加字符串”对话框的“字符串”框中,键入英文字符串。 在“注释”框中,根据需要键入翻译器的翻译提示。
单击确定。
单击保存。
使用以下过程可更改词典中的字符串。
在“词典”下拉菜单中,选择包含要更改的字符串的词典。
双击要更改的字符串。
在“编辑字符串”对话框中,选择“修改字符串”或“注释”(创建副本)。
修改字符串或注释,然后单击“确定”。
单击保存。
使用以下过程可从词典中删除字符串。
在“词典”下拉菜单中,选择要从中删除字符串的词典。
单击删除。
单击保存。
Translator工具底部的搜索栏提供了字符串选择选项:
按文本过滤: 与英语字符串、注释或翻译匹配的模式。 只有与全部或部分阵列匹配的项才会出现在表中。
更改:任何、已修改、新建、已删除: 显示已更改但未保存的项目。
具有评论:显示包含翻译人员注释的项目。
缺少翻译: 显示至少有一种语言没有翻译的项目。
将英文字符串添加到词典后,可以添加该字符串的翻译。 您还可以 导出词典 由第三方翻译。
选择 您的项目特定词典 因为它指定存储库中保存翻译的路径。 例如,选择 词典 作为:
/apps/myProject/i18n
仅编辑为项目创建并位于下的词典 /apps
.
此工具中还提供了AEM系统词典。 请勿更改AEM系统词典,因为这会导致AEM UI出现问题。 此外,升级时可能会丢失更改。 AEM系统词典位于 /libs
.
要编辑其中一个字符串的翻译文本,您可以:
单击 保存 以提交更改。
单击 重置和刷新 (而不是 保存)还原对先前文本的任何更改。
为了支持使用第三方翻译服务,翻译工具允许您导出和导入词典。
将词典导出到XLIFF文件,以便第三方服务可以翻译词典字符串。
导出XLIFF文件并包含语言时,存储库中词典的节点结构必须包含该语言。 如果未包含语言,则会发生错误。 例如,要导出法语XLIFF文件,词典文件夹必须包括 mix:language
子节点已命名 fr
. (请参阅 创建词典.)
使用以下过程可导出特定语言的XLIFF文件。
打开翻译工具 http://<host>:<port>/libs/cq/i18n/translator.html
使用词典下拉菜单选择要导出的词典。
单击“导出”>“完全导出” XX Xliff选项,其中 XX 是双字母语言代码,如DE或FR。
XLIFF文件将在新选项卡或窗口中打开。
使用Web浏览器命令将页面另存为文件系统中的文件,如“文件”>“另存为页面”。
使用以下过程可导出全部或部分英文字符串。
http://<host>:<port>/libs/cq/i18n/translator.html
将XLIFF文件导入词典以填充词典。 当词典包含英语字符串的翻译,并且XLIFF文件包含同一字符串的不同翻译时,词典翻译将被替换。
http://<host>:<port>/libs/cq/i18n/translator.html
添加或删除翻译工具支持的语言以及向网页用户提供的语言。
翻译工具在词典表中包含以下语言:
使用以下过程添加或删除语言。
使用CRXDE Lite创建节点:
/etc/languages
在此节点上,创建一个属性:
名称:languages
类型:Multi-String
值:要显示的语言列表。 例如:
语言代码必须为小写。
单击 全部保存 CRXDE Lite并重新加载转换器。 网格将更新以显示定义的语言。
翻译人员将只保存实际语言的翻译 在字典中呈现 (即,在词典路径下,例如 /apps/myProject/i18n
)。
确保这些语言与网格中显示的语言对应。
在为AEM实例的新语言定义词典后,您需要使其可供作者选择(例如,用于 偏好设置):
要更改中可用的语言列表,请执行以下操作 偏好设置 的 安全性 控制台:
在应用程序代码中创建覆盖以用于:
/libs/cq/security/widgets/source/widgets/security/Preferences.js
and update as required.
若要使该语言可用于 偏好设置 从 网站 控制台。您需要在应用程序中进行以下更改:
为下面的结构创建叠加:
/libs/cq/security/content/tools/userProperties
在覆盖内更新下的语言列表:
items/common/items /lang/options
保存所有内容并重新加载相应的控制台。
不同的国家使用相同的语言,例如,美国、英国和澳大利亚都使用英语。 这由指示语言和国家/地区的代码指示,例如 en_US
, en_GB
和 en_AU
.
显示标记时使用默认国家/地区(例如,在语言复制对话框中),它们用于解析语言代码的国家/地区。
对于由上述翻译员管理的本地化,只有完全相同的语言才有效。 如果语言首选项下拉列表使用 en_uk
,必须有 en_uk
词典中的词典。
要更改默认定义,请执行以下操作:
语言列表存储在以下位置:
/libs/wcm/core/resources/languages
复制此项至以下位置,以将其覆盖:
/apps/wcm/core/resources/languages
然后在那里更改或扩展列表。 属性 defaultCountry
在语言节点上(例如, ja
)必须包含完整代码,例如 ja_jp
,它们将定义 jp
作为语言的默认国家/地区 ja
.
更新 CQ WCM语言管理器.
语言列表:
存储库中语言列表的路径。 将其设置为用于叠加的位置:
/apps/wcm/core/resources/languages
您可以使用OSGi Web控制台执行此操作:
https://<hostname>:<port-number>/system/console/configMgr/com.day.cq.wcm.core.impl.LanguageManagerImpl
将您的字典合并到AEM应用程序的发行管理流程中。 例如,将字典包含在应用程序的内容包中,以部署到发布实例。 此策略具有以下优势:
同样,词典字符串的测试应该作为正常软件开发生命周期的一部分来执行。
请勿对字典使用常规发布功能或复制。 相反,应按处理代码和配置的方式处理词典。 这包括使用源代码管理来跟踪更改,以及使用内容包将更改应用于创作和发布。
使用Dispatcher时,您需要 使缓存的页面失效 在渲染的组件字符串中包含新词典字符串。