在aem中使用i18n在自定义jsvascript中发布

时间:2016-01-18 09:02:44

标签: cq5 aem

我有一个要求,就像我需要在发布实例中的自定义javascript中拥有i18n值。有谁可以请帮助我。

提前致谢

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到:

  • 在您的js中,您可以访问提供本地化消息的对象CQ.I18n。默认情况下,它使用用户区域设置(而不是当前页面/路径的区域设置)。

所以你可以用下面的方式使用它:

if (CQ && CQ.I18n) {
    CQ.I18n.setLocale(_currentPathLocale_);
    var localizedMessage = CQ.I18n.getMessage(messageKey);
}

_currentPathLocale_你可以在初始化时注入你的js。

  • 另一种方式是注入已经本地化的消息。

如果您有下一个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>