在aem中使用i18n在自定义jsvascript中发布
我有一个要求,就像我需要在发布实例中的自定义javascript中有一个i18n值一样。谁能帮我一下吗在aem中使用i18n在自定义jsvascript中发布,aem,Aem,我有一个要求,就像我需要在发布实例中的自定义javascript中有一个i18n值一样。谁能帮我一下吗 提前感谢有几种方法可以做到这一点: 在js中,您可以访问提供本地化消息的objectCQ.I18n。默认情况下,它使用用户区域设置(而不是当前页面/路径的区域设置) 因此,您可以以下一种方式使用它: if (CQ && CQ.I18n) { CQ.I18n.setLocale(_currentPathLocale_); var localizedMessag
提前感谢有几种方法可以做到这一点:
- 在js中,您可以访问提供本地化消息的object
。默认情况下,它使用用户区域设置(而不是当前页面/路径的区域设置)李>CQ.I18n
if (CQ && CQ.I18n) {
CQ.I18n.setLocale(_currentPathLocale_);
var localizedMessage = CQ.I18n.getMessage(messageKey);
}
\u currentPathLocale\u
您可以在初始化时注入js
- 另一种方法是注入已经本地化的消息李>
(function($) {
$.fn.myComponent = function(options) {
var defaults = {
message: "Hello!"
}
var opts = $.extend(defaults, options);
var localizedMessage = opts.message;
}
})(jQuery);
然后,您可以从jsp传递:
<script type="text/javascript">
$(document).ready(function() {
$("#componentDiv").myComponent({message: "<fmt:message key="messageKey"/>"});
})
</script>
$(文档).ready(函数(){
$(“#componentDiv”).myComponent({message:”“});
})
第一种方法的问题是CQ对象在发布实例中不可用。我没有使用next js来使用第二种方法。@Tushar您使用哪种CQ/AEM版本?@Tushar可能没有包含“CQ.shared”类别。只需将其包含在“cq:includeClientLib”中,将其嵌入全局clientlib或使其成为clientlib的依赖项,cq对象也将在发布时可用。@Tushar要在发布实例检查时获取cq对象,非常感谢您的回答