Java中的国际化问题

来源:互联网 发布:mysql数据库pdf 编辑:程序博客网 时间:2024/05/16 17:07

package com.sls.test.i18n;


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

/**
 * 读取国际化资源文件
 * @Description:
 * @author 
 * @Date:2013-11-14
 *
 */
public class MyLocal {


/**
* @param args
*/
public static void main(String[] args) {
//
Locale myLocal = Locale.getDefault();
ResourceBundle bundle = ResourceBundle.getBundle("mess",myLocal);
System.out.println(bundle.getString("hello"));

Locale usLocal = new Locale("en", "US");
ResourceBundle usBundle = ResourceBundle.getBundle("mess",usLocal);
System.out.println(usBundle.getString("hello"));
}
}

=======================================================

==============================================================================

找国家名及国家代码可以从如下地址查找:

http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm

找语言代码如下地址:

http://www.loc.gov/standards/iso639-2/php/English_list.php

 

一、  国际化资源文件

     命名格式:xxx_语言_国家.properties

     例如:app_en_US.properties  表示美国英语

          app_zh_CN.properties  表示中国 汉语

     资源文件的编码是使用UTF-8的编码,这样中文也必需是UTF-8的格式,则需要将中文转换成UTF-8的,你可以使用propertiesEditor插件来进行输入中文。

 

app_en_US.properties文件内容

welcome.msg=hello world!

app_zh_CN.properties

welcome.msg=欢迎您!

二、  Java国际化

     要求:资源文件要求存放在classpath的根目录下(src)

     然后再建立一个Java类和一个main方法如下:这样就可以进行国际化处理了。

     public static void main(String[] args) {

        ResourceBundle res = ResourceBundle.getBundle("app",Locale.CHINA);

        System.out.println(res.getString("welcome.msg"));

    }

注:java.util.ResourceBundle是加载国际化资源文件的类。利用此类的getBundle()方法加载classpath下的指定开头的文件名的国际化资源文件。并且在加载时需要指定加载哪个国家的国际人资源文件。

     此实例中的ResourceBundle.getBundle("app",Locale.CHINA);表示加载以"app"开头的国际化资源文件,并且是中国的(对应的zh_CN)的。

     一但国际化资源文件加载上来后,就可以使用ResourceBundle类的getSring("welcome.msg")方法获取当前内容。

 

原创粉丝点击