1.国际化一般通过消息资源文件读取。
globalMessages_en_US.properties 这个是英文
globalMessages_zh_CN.properties 这个是中文 格式一定要正确.一般是通过匹配浏览器的语言设置
2.那么如何在页面中使用国际化呢
(1):通过使用struts的标签<s:text name="i18n.title.key"/>
(2):通过使用key字段
<s:select id="choose" list="{'zh_CN','en_US'}" value="local" key="i18n.select.key"></s:select>
资源文件的内容如下
struts.messages.invalid.token=isErr\!
i18n.title.key=i18nTitle
i18n.p1.message=place choose lauguage
i18n.select.key=choose
====================================
3.在后台编程式定义中英文
private String local;
public String execute() throws Exception {
// 取得当前的浏览器语言
local=ActionContext.getContext().getLocale().getLanguage();
if(local.equals("zh")){
local="zh_CN";
}else{
local="en_US";
}
System.out.println(local);
return SUCCESS;
}
if("zh_CN".equals(local)){
ActionContext.getContext().setLocale(Locale.SIMPLIFIED_CHINESE);
}else{
ActionContext.getContext().setLocale(Locale.US);
}
/*后台取国际化消息资源文件
*1.:<s:text name="i18n.p1.key"/>
*2.<s:select .. key="i18n.select.key">//前台通过标签取
*3.在ActionSupport中使用getText方法
* */
System.out.println(this.getText("i18n.title.key"));
也可以通过sturts.properties设置浏览器语言
struts.locale=zh_CN