例如,我的应用在很大程度上依赖于在进行CRUD操作时使用AJAX。
截至目前,消息的硬编码与此类似。
function handleSaveNewMember(xhr, status, args) {
if(args.validationFailed || !args.result) {
}else{
showmsg.show([{summary:'Add New Member', detail: 'Successfully Added New Member', severity: 'info'}]);
}
}
但是如果您将应用部署到其他语言环境会怎么样?那么你如何处理i18n功能呢?
顺便说一下,我在这里使用了Primefaces。
答案 0 :(得分:4)
它可能不是最好的解决方案,但在过去我基本上链接了一个包含我在代码中引用的字符串常量的js文件。在加载时,我为当前文化加载适当的js文件。如果文件没有加载,请确保每个常量都有某种默认值。
答案 1 :(得分:1)
如果你被允许使用JQuery - 我们在i18n项目中使用这个漂亮的小插件 -
http://code.google.com/p/jquery-i18n-properties/
很好地满足我们的需求..
答案 2 :(得分:1)
另一种方法是迭代你的属性文件并将其填充到HashMap
说mapOfLabels
然后变成带有Gson {J} {1}}的Json字符串
将Json字符串放入一个bean变量中,该变量将通过getter“链接”到你的gson.toJson(mapOfLabels);
页面
xhtml
在js方面你可以简单地访问它并用jQuery解析它:
<h:inputText id="locLabelsID" value="#{myBean.locLabelsField}" styleClass="hide"/>
并使用您的标签键访问它
var myJsonVar= $("#locLabelsID").val();
locLabels = $.parseJSON(myJsonVar);
当然,哈希映射的init只进行了一次,而js方面的init也是如此...