AEM 6.x:如何通过Javascript访问i18n翻译?

时间:2016-10-31 14:56:22

标签: javascript internationalization adobe aem translate

我试图在AEM的翻译器(/libs/cq/i18n/translator.html)中使用我创建的字典中的Javascript动态检索已翻译的消息。

我们设置了字典值,如:

String          EN                  FR
========================================================
TEST-001        This is a Test1     FR:This is a Test1
TEST-002        This is a Test2     FR:This is a Test2
TEST-003        This is a Test3     FR:This is a Test3

我查看了国际化UI字符串文章(https://docs.adobe.com/docs/en/aem/6-2/develop/components/i18n/i18n-dev.html)但是当我尝试以下内容时:

Granite.I18n.setLocale("en");
Granite.I18n.get("TEST-001");

Granite.I18n.setLocale("fr");
Granite.I18n.get("TEST-001");

我只返回了我传入的字符串(即" TEST-001")。

有人可以帮我理解如何检索已翻译的值吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

取决于您的翻译存储位置,您可以尝试类似 -

<script>
        Granite.I18n.init({
            locale: "<%= LocaleUtil.toRFC4646(request.getLocale()).toLowerCase() %>",
            urlPrefix: "<%= request.getContextPath() %>/libs/cq/i18n/dict."
        });
    </script>

这是从这里取的样本 -

/libs/cq/gui/components/projects/admin/page/head.jsp

其他方式是

<html
    lang="<%= LocaleUtil.toRFC4646(request.getLocale()).toLowerCase() %>"
    data-i18n-dictionary-src="<%= request.getContextPath() %>/libs/cq/i18n/dict.{+locale}.json">

取自 - /libs/fd/fm/gui/components/admin/creationwizard/page/page.jsp