Skip to main content
Level 4
January 13, 2016
Solved

How to load only part of the dictionary in AEM 6.0?

Hello,

I'm using AEM6.0 with SP3.

In javascript we are loading part of the transation with CQ.I18n.getMessage method.

/libs/cq/i18n/dict.en_us.json returns only custom translation, but /libs/cq/i18n/dict.de_de.json in additional to our custom translation returns also AEM OOTB translations.

How I can prevent this for publish instance?

Thank you in advance

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
joerghoh
joerghohAccepted solution
Adobe Employee
January 15, 2016

Hi,

so do I understand you correct?

  • When you hit /libs/cq/i18n/dict.en_us.json with your browser, you get only the custom translations (= the translations you provided)
  • When you hit /libs/cq/i18n/dict.de_de.json with your browser, you get the custom translations plus the ootb german translations

Is this correct? And you have put your custom translations below /apps/my-project/i18.

Which version of AEM do you have? Can you provide the exact version of the bundle "org.apache.sling.i18n"?

kind regards,
Jörg

13 replies

mohanr80993572
Level 2
September 1, 2016

Ok, thank you - Mohan

Translate
Level 2
May 22, 2018

We faced the similar requirement to fetch I18n values at client side using Granite.i18n Library

This is what I did.

1) Created a custom servlet which returns JSON response similar to ResourceBundleExportServlet

2) Loaded the bundle using basename and locale parameter - ResourceBundle resourceBundle = req.getResourceBundle(basename, pageLocale);

3) Added 'sling:basename="basename_constant"' in language specific i18n xml file which resides in /apps/project-name/i18n folder. In my case, I am setting the value of locale itself ex: "zh_cn"

4) In clientlibs javascript file setting Granite.I18n.setUrlPrefix("/bin/custom/i18n/dict."); to fetch from custom servlet URL.

Translate