一、普通java工程实现国际化(工程struts2_3100_I18N_Test
)
首先在src下存放国际化文件
app_en_US.properties
welcome.msg=hello,sir
app_zh_CN.properties
welcome.msg=\u6B22\u8FCE\u4F60\uFF01
我们使用一个普通的java程序进行测试:
Test.java
package com.bjsxt;
import java.util.Locale;
import java.util.ResourceBundle;
public class Test {
public static void main(String[] args) {
ResourceBundle res = ResourceBundle.getBundle("app", Locale.US);
System.out.println(res.getString("welcome.msg" ));
}
}
说明:我们这里在方法getBundle
中的第一个参数是填写资源文件的开头部分,资源文件中的第二部分(如en)表示语言,第三部分(如US)表示国家。方法的第二个参数选择国家。
二、struts2中的国际化(工程struts2_3200_BBS2009_08_I18N
)
struts2中国际化分为三个级别,分别是action级、package级、工程级,作用范围依次变大,但是一般我们都使用工程级。
2.1 action级和package级国际化
这两种方式一般不太用,这里不详细讲。
需要明白的是action级的资源文件写法一般为LoginAction_en_US.properties
和LoginAction_zh_CN.properties
,这里名字的第一部分最好和action的名字相同,这个级别的国际化资源文件只能给对应的action使用。而package级别的资源文件的名字一般为package_en_US.properties
和package_zh_CN.properties
,注意第一部分一定要是package。这两类资源文件都放在action包中。
2.2 工程级国际化
此时资源文件一般放在src目录下。
bbs2009_en_US.properties
login.username=username:
login.password=password:
login.login=login
welcome.msg=welcome\:{0}
bbs2009_zh_CN.properties
login.username=\u7528\u6237\u540D\uFF1A
login.password=\u5BC6 \u7801\uFF1A
login.login=\u767B\u5F55
welcome.msg=\u6B22\u8FCE\u4F60\uFF1A{0}
这里以登录为例:
LoginAction.java
package com.bjsxt.bbs2009.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String username;
private String password;
public String login() throws Exception {
return "success";
}
public String input() {
return "input";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
struts.xml
/admin/index.html
/admin/{1}_{2}.jsp
/admin/{1}_{2}.jsp
/index.jsp
Login_input.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
Login_input
Login_login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
Login_login
欢迎您:
说明:
- 1.首先在配置文件中我们需要配置资源文件:
其中value值是资源文件名字的第一部分。
- 2.在输入页面中我们取值的方法是
value="getText('login.username')"
- 3.在登录成功后的页面(
Login_login.jsp
)中我们取得用户名,但是这个名字我们是不能在资源文件中写死的,所以我们采用动态指定。 - 4.有时候我们可以看到有一种网站,当我们点击链接就会将整个网站的语言变换。
我们在Login_input.jsp
中加上两个链接:
en
cn
其中lang是action的name属性值,提交到特定的action去处理。
最后:
这个内容在以后的开发中用的较少,这里不多说。