AEM如何防止本地化发生otb?

时间:2016-09-10 18:03:33

标签: internationalization cq5 aem

我有一个场景,其中i18n成为内容作者的开销。作者希望对话标签仅适用于所有语言环境的英语。但是对话框中的某些标题/标签会在otb词典中可用时进行本地化。标签示例'高级'从页面属性对话框翻译为非英语网站。

有没有办法防止内部化发生?

1 个答案:

答案 0 :(得分:0)

如果您参考AEM的i18n文档,您可以看到它由slingRequest中设置的区域设置/语言驱动。您可以通过明确修复i18n来覆盖它,但如果您这样做,那么您的翻译都不会起作用 -

Locale pageLang = new Locale("en");
ResourceBundle resourceBundle = slingRequest.getResourceBundle(pageLang);
I18n i18n = new I18n(resourceBundle); 

另一种替代方案(需要额外的努力)只需要对话框就可以了 -

  • 创建自己的翻译词典,请参阅here
  • 为您的密钥使用唯一的名称间距,例如 - myapp.mycomponent_abc.label
  • 在组件对话框中使用上述键,以确保选择您的翻译版本。如果对于所有语言,您只需要英语对话框,那么您所要做的就是复制您的英语词典并将其中的语言键更改为相关语言,同时保持翻译仍为英语。