这个是接着上一篇 国际化总结—关于Struts2
在做国际化的时候,有时候script脚本中也需要有国际化,所以就用到了jquery的一个包:jquery.i18n
关于这个包的详细使用有空在弄,这里只是介绍如何实现js脚本的国际化的一些简单代码
直接上代码了:
首先是加载jquery.i18n的,这个需要随着页面的加载马上就执行,就写在document的onready代码的最前面吧
function loadProperties(){
/*lan = $("#local_lan").val();
lan = (lan==null||lan.trim()=='')?'en':"zh";*/
var lan = 'zh';//zh,en
$.ajax({
type:"POST",
url:"getlanguage",
dataType:"json",
async:false,
success:function(json){
lan=json;
},
error: function(json){
alert("ERROR!!!\ncontact wuzhongwei@...");
}
});
jQuery.i18n.properties({// 加载资浏览器语言对应的资源文件
name:'msg', // 资源文件名称
path:'Js/i18n/', // 资源文件路径
mode:'map', // 用 Map 的方式使用资源文件中的值
language:lan,
callback: function() {// 加载成功后设置显示内容
}
});
}
上面的代码核心部分是使用ajax获取当前使用的是什么环境,相关的Struts2 Action类代码如下:
public String execute(){
//flag = sysConfig.getLanguage_version();
Locale locale = (Locale) ActionContext.getContext().getSession().get("WW_TRANS_I18N_LOCALE");
if(locale == null){
locale = Locale.US;
}
if(locale.equals(Locale.US)){
flag = "en";
}else{
flag = "zh";
}
return SUCCESS;
}
很简单的一个方法。
这样当页面加载的时候就会根据当前使用的语言环境去获取相应的配置文件
具体的jquery.i18n的使用有空再详细说明,包括初始化啊(其实初始化上面的代码里面就有了),获取相应的资源啊等等