白季飞龙的个人主页

Struts2 国际化的配置与使用

1. Resource Bundle配置

Java官方使用Resource Bundle进行国际化,但是Resource Bundle的properties格式只支持ASCII码,Unicode需要转化后才能用。xml格式的,struts又不支持(没查到)。好在IDEA有个透明ASCII转换功能。File->Settings->Editor->File Encodings

截图

sky=Sky
sky=

2. Struts配置

<struts>
<constant name="struts.custom.i18n.resources" value="i18n"/>
</struts>

3. 在Struts中使用

package cn.corpro.iot.action;

import com.opensymphony.xwork2.ActionSupport;

import java.io.IOException;

/**
* Author: BaiJiFeiLong@gmail.com
* Date: 2016/7/7 10:18
*/
public class HomeAction extends ActionSupport {

private String sky;

public String index() throws IOException {
sky = getLocale() + getText("sky", "No sky");
return SUCCESS;
}

public String getSky() {
return sky;
}
}

4. 设置语言

在任一请Struts请求中,加入参数?request_locale=zh_CN即可

5. 设置默认语言

对于未支持的语言,Struts不是用默认的语言文件(比如i18n.properties),也不是用英语,而是使用JVM的语言设置。所以要让默认的语言文件真正缺省使用,也就是默认用英语(默认语言文件用英语的情况),可以将JVM的语言设为英语。

给Tomcat增加启动参数:-Duser.language=en

这样,Struts会根据HTTP请求头的语言设定自动进行国际化,而且默认使用英语。


漫漫路,莫论逍遥;潜心修,只为悟道