【问题标题】:ResourceBundle not working in AEM 6.2ResourceBundle 在 AEM 6.2 中不起作用
【发布时间】:2017-04-29 15:22:21
【问题描述】:

按照文档here,我正在尝试让 i18n 在我的 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 测试,它在那里工作,所以它与 Sling 模型相关,其中代码位于 @PostConstruct 方法中,其中模型改编自 SlingHttpServletRequest

【问题讨论】:

    标签: aem resourcebundle sling-models


    【解决方案1】:

    wcm.io 邮件列表和来自code 的 sn-p 的帮助下,我得以完成这项工作:

    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,这对我也不起作用,然后我在邮件列表中询问可能是什么问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多