2016-12-14 4 views
0

Nach der Dokumentation arbeiten here, ich versuche i18n zu bekommen auf meinem AEM 6.2 Beispiel arbeiten:Resource nicht in AEM 6.2

Locale pageLang = currentPage.getLanguage(false); 
ResourceBundle resourceBundle = slingRequest.getResourceBundle(pageLang); 
I18n i18n = new I18n(resourceBundle); 

Das Problem ist, habe ich immer eine org.apache.sling.engine.impl.helper.NullResourceBundle, die nur ein leeres zu sein scheint Fallback-Paket, wenn nichts gefunden wurde. Ich habe versucht, die Bundles in der OSGi-Konfiguration vorab zu laden, aber ohne Erfolg.

Auch wenn meine eigenen Übersetzungen nicht funktionieren würden, sollte es zumindest die vordefinierten Übersetzungen enthalten, die mit dem Produkt geliefert werden. Obwohl meine eigenen in dem Werkzeug: http://localhost:4502/libs/cq/i18n/translator.html

Irgendwelche Ideen, warum ich kein gültiges Ressourcenbündel bekomme?

EDIT: habe ich einen einfachen JSP-Test und es funktioniert es, so dass es zu Sling Modellen verwendet ist, wo der Code innerhalb eines @PostConstruct Verfahrens liegt, wo das Modell aus den SlingHttpServletRequest

Antwort

1

Mit Hilfe der wcm.io angepasst wurde Mailingliste und ein Ausschnitt aus es ist code ich in der Lage war, diese Funktion zu erhalten:

Locale pageLang = currentPage.getLanguage(false); 
SlingHttpServletRequest request = slingRequest; 
SlingBindings bindings = (SlingBindings)slingRequest.getAttribute(SlingBindings.class.getName()); 
if (bindings != null) { 
    request = bindings.getRequest(); 
} 
ResourceBundle resourceBundle = request.getResourceBundle(pageLang); 

es scheint, dass das injizierte Anfrage in SlingModels nicht der wirkliche Wunsch ist, sondern nur ein Wrapper, die nicht die ResourceBundle enthält. Ich versuchte dann die @AemObject von wcm.io, die auch nicht für mich arbeitete und dann fragte ich in der Adressenliste, was das Problem sein könnte.

Verwandte Themen