2

例如,我的应用在进行 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。

4

3 回答 3

4

它可能不是最好的解决方案,但在过去,我基本上链接了一个 js 文件,其中包含我在代码中引用的字符串常量。加载时,我为当前文化加载适当的 js 文件。如果该文件未加载,请确保为每个常量设置某种默认值。

于 2012-05-21T05:40:19.370 回答
1

另一种方法是遍历您的属性文件并将其填充为HashMapsaymapOfLabels然后使用 Gson 转换为 Json 字符串gson.toJson(mapOfLabels);

而不是将Json字符串放入一个bean变量中,该变量将通过getter“链接”到您的xhtml页面,如下所示

<h:inputText id="locLabelsID" value="#{myBean.locLabelsField}" styleClass="hide"/>

在 js 方面,您可以简单地访问它并使用 jQuery 解析它,如下所示:

var myJsonVar= $("#locLabelsID").val();
locLabels = $.parseJSON(myJsonVar); 

并像这样使用您的标签密钥访问它

locLabels[key];

当然,哈希映射的初始化只执行一次,js 端的初始化也是如此……

于 2012-05-21T09:03:39.453 回答
1

如果你被允许使用 JQuery——我们在 i18n 项目中使用了这个不错的小插件——

http://code.google.com/p/jquery-i18n-properties/

很适合我们的需求。。

于 2012-05-21T05:37:55.787 回答