2016-12-14 51 views
0

工作繼文檔here,我試圖讓國際化我的AEM 6.2實例工作:資源包不是在AEM 6.2

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

的問題是,我總是得到org.apache.sling.engine.impl.helper.NullResourceBundle這似乎只是一個空如果沒有找到任何回退包,我嘗試在OSGi配置中預加載這些軟件包,但無濟於事。

即使我自己的翻譯不起作用,至少它應該包含產品提供的預定義翻譯。雖然我自己在工具中出現: http://localhost:4502/libs/cq/i18n/translator.html

任何想法,爲什麼我沒有得到有效的資源包?

編輯:我做了一個簡單的JSP測試,有它的工作原理,所以它涉及到的代碼駐留在@PostConstruct方法,其中模型改編自SlingHttpServletRequest

回答

1

隨着wcm.io的幫助內吊帶模型郵件列表和片段從它的code我能得到這個工作:

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); 

看來,在SlingModels注入的要求是不是真正的要求,而只是一個包裝,不包含ResourceBundle。然後我嘗試了wcm.io的@AemObject,這也不適合我,然後我在郵件列表中詢問可能是什麼問題。