欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

struts国际化,资源文件读取一

程序员文章站 2022-07-03 23:18:17
...

国际化的发展

看本文之前可先看一下properties文件的读取:

http://quicker.iteye.com/blog/571743

一.一般处理方式:

在项目的src根目录建立资源文件:

ApplicationResources.properties

ApplicationResources_zh_CN.properties

ApplicationResources_en_US.properties

以上三个文件分别代表默认,中文,英文,如果是其它语言那么从默认文件取值.

测试代码:

package com.lwf.struts.util;

import java.util.Locale;
import java.util.ResourceBundle;

public class Testl18n {

	public static void main(String[] args) {
		Locale lo = Locale.getDefault();
		System.out.println(lo.getLanguage());
		System.out.println(lo.getCountry());
		
		ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources");
		String value = bundle.getString("error.login.usernull");
		System.out.println(value);
	}
}

 

 

代码说明:

Locale lo = Locale.getDefault();
System.out.println(lo.getLanguage());
System.out.println(lo.getCountry());
从系统控制面板的语言设置里取值,如中文输出:

zh

CN

英文则输出

en

US

ResourceBundle类将ApplicationResources设为默认资源文件,注意不用加.properties后缀.

当我们的系统设置为中文时,从ApplicationResources_zh_CN.properties 里面读取值 .

如果设为英文从ApplicationResources_en_US.properties 里面读取值.

其它则读取默认值.当然可以新建多种语言的资源文件.

注意的是:ApplicationResources_zh_CN.properties 里面的中文显示出来可能会是乱码或问号.

处理方法:使用java安装目录bin下面的native2ascii直接将txt文件转换为properties文件.

如:

这里使用命令:

native2ascii ApplicationResources_zh_CN.txt ApplicationResources_zh_CN.properties

 

转换前ApplicationResources_zh_CN.txt 内容:

error.login.usernull	= 用户名不能为空

 

转换后ApplicationResources_zh_CN.properties内容 :

error.login.usernull	= \u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a

 

这样就不会出现乱码了.

 

 

二.上面我们是从操作系统读取设置好的语言值.那么在程序中不同的人可能要用到不同的语言.所以真正在程序里面实现应该将语言设置作为一个参数,可以让客户自己设定想以什么语言查看..

 我们可以构建Locale对象,如:

Locale local = new Locale("en","US");

 

这样我们可以依据传入的en,US两个参数值来寻找从哪个资源文件读取内容.

相关标签: Struts Blog