我按照此页面上的说明(http://docs.adobe.com/docs/en/cq/current/developing/cq5-translator.html)尝试让我的组件访问可翻译的字符串包。我按照这些说明(http://www.wemblog.com/2011/12/how-to-use-multi-language-translation.html)来设置组件的JSP文件以使用翻译的字符串。但是,它不起作用;始终使用默认值。我不知道它从哪里拉资源包,但我希望它从我直接在组件节点下创建的i18n文件夹中提取。我有什么想法吗?
相关的JSP代码:
<cq:setContentBundle language="se" source="static" /><%
Locale pageLocale = currentPage.getLanguage(false);
ResourceBundle resourceBundle = slingRequest.getResourceBundle("hello-world-strings", pageLocale);
I18n i18n = new I18n(resourceBundle);
%>
<div style="margin:1em;padding:.8em;box-shadow:inset 0px 0px .5em #ddd;border:solid 1px #aaa;">
<h1>Translation Testing Output</h1>
OUT: <%= i18n.get("name") %>
</div>
答案 0 :(得分:0)
在CQ的翻译器中添加评论会更改密钥。要进行调试,请尝试将密钥吐出:
<%= slingRequest.getResourceBundle(slingRequest.getLocale()).keySet()%><br>
如果您在列表中看到具有意外双括号的键,那么这些是翻译者注释。如果是这种情况,您可能无法收到消息,因为密钥不是您认为应该是的。 尝试删除评论。您无法在翻译器中执行此操作,但您可以使用crxde之类的工具直接编辑sling:key属性。