一、介绍
国际化Internationalization的首末字符I和N之间字符数是18,简称I18N
“国际化”是指一个应用程序在运行时,能够根据客户端请求所来自国家或地区语言的不同,而显示不同的语言界面。
比如:你的电脑是中文操作系统,这个应用程序的界面使用中文文字;客户端是英文操作系统,就显示英文界面。
国际化资源文件,后缀以properties作为扩展名,该文件以“键=值”(key=value)对的形式存储资源数据
二、命名格式:
1、资源文件名.properties
2、资源文件名_语言种类.properties
三、编码
在国际化时,所有的字符都要使用标准的编码方式,需要把中文字符转换为Unicode代码。
中文资源文件不能直接使用,必须转换为Unicode代码
Eclipse中,在globalMessages_zh_CN.properties文件中,在等式右边输入中文,自动转换为Unicode编码方式,如图所示:
三、应用实例
登陆时调用中文资源文件如下:
IE浏览器将英文[en-US]上移到顶部,如下:
重新打开浏览器登陆页面,此时调用英文资源文件,如下
Eclipse中实例目录结构,如下:
1、编写国际化资源文件,将这两个文件放在和struts.xml同一个目录
中文文件:globalMessages_zh_CN.properties
英文文件:globalMessages_en_US.properties
2、web.xml
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
3、编写视图组件
(1)login.jsp
(2)loginSuccess.jsp
:
:
4、编写业务控制器
LoginAction1.java
packageloginAction;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionSupport;public class LoginAction1 extendsActionSupport{privateString name;privateString password;//用于定义标题信息
privateString tip;publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}publicString getTip() {returntip;
}public voidsetTip(String tip) {this.tip =tip;
}public String execute() throwsException{if(getName().equals("QQ")&&getPassword().equals("123")){
ActionContext.getContext().getSession().put("name", getName());returnSUCCESS;
}else{returnERROR;
}
}
}
5、在struts.xml中配置Action和国际资源文件
/p>
"http://struts.apache.org/dtds/struts-2.3.dtd">
/I18N/loginSuccess.jsp
/I18N/login.jsp