I18N与Struts2

来源:互联网 发布:软件测试找不到工作 编辑:程序博客网 时间:2024/05/21 09:41

1、I18N

I18N(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。Java为实现国际化提供了工具类,即为不同的语言提供不同的资源文件。

2、I18N简单示例

(1)编写资源文件

app_en_US.properties 如下:

message=welcome!!
app_zh_CN.properties 如下:

message=\u6B22\u8FCE\u6B22\u8FCE\uFF0C\u70ED\u70C8\u6B22\u8FCE\uFF01
对应的值为:欢迎欢迎,热烈欢迎!

因为使用的是myeclipse10版本,已自带propertie ascii转换插件,所以显示上述内容。

(2)主程序

package com.struts2.yy;import java.util.Locale;import java.util.ResourceBundle;public class TestI18N {public static void main(String[] args) {ResourceBundle bundle = ResourceBundle.getBundle("yy", Locale.CHINA);System.out.println(bundle.getString("message"));}}
上述是获取中文,执行结果如下:

欢迎欢迎,热烈欢迎!
同理英文可得。

3、国际化资源文件

(1)命名规范:自定义名称_语言代码_国别代码.properties

如果是默认的,则直接 自定义名称_properties。

(2)优先级

现有三个资源文件: yy.properties、yy_zh_CN.properties、yy_en_US.properties。

在中文操作系统下,会优先使用yy_zh_CN.properties;如果不存在,则使用默认的yy.properties。

(3)没有提供语言和地区的资源文件使用默认的。

(4)资源文件都必须是ISO-8859-1编码,因此对于非西方语言的资源文件,必须将之转化为Unicode编码,转换工具使用JDK自带的native2ascii命令。命名如下

native2ascii  -encoding oldFileEncoding[原资源文件编码] oldFile[原资源文件名称] newFile[新资源文件名称]


4、I18N与Struts2

(1)资源文件的级别

Action级别、Package级别以及应用级别,通常是应用级别

(2)struts.xml文件中配置资源文件前缀,如下:

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





0 0