2016-10-31 4 views
0

Я пытаюсь динамически извлекать переведенное сообщение с использованием Javascript из моего созданного словаря в переводчике AEM (/libs/cq/i18n/translator.html).AEM 6.x: Как получить доступ к переводам i18n через 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 Strings (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").

Может ли кто-нибудь помочь мне понять, как вернуть переведенное значение обратно?

Спасибо!

ответ

0

В зависимости от того, где ваши переводы хранятся, вы можете попробовать что-то вроде -

<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