国际化程序

国际化操作指一个程序可以适应多国语言。
实现工具:
1.  java.util.Local类:用于表示一个国家的语言类
2. java.util.Resource.Bundle类:用于访问属性文件(资源文件)
3. java.text.MessageFormat类:格式化动态资源文件。

属性文件:指后缀为(.properties)的文件,内容保存结构为“key = value” 形式。Java类集中有介绍。

实现操作的思路:
通过Locale类所指定的区域码(国家的IOS编码),ResourceBundle能找到相应的资源文件,如果资源文件中存在动态文件,则使用MessageFormat进行格式化。


国际化程序_第1张图片

import java.util.Locale;
import java.util.ResourceBundle;
import java.text.MessageFormat;
public class InterDemo02 {
	public static void main(String []args) {
		Locale zhLoc = new Locale("zh", "CN");	// 表示的地区
		Locale enLoc = new Locale("en", "US");	
		Locale frLoc = new Locale("fr", "FR");
		ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhLoc);	// 找到地区资源属性文件
		ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc);
		ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc);
		// 依次读取各个属性文件中的内容,通过键值名称"Info" 读取
		
		String strZh = zhrb.getString("info");
		String strEn = enrb.getString("info");
		String strFr = frrb.getString("info");
		System.out.println("中文:" + MessageFormat.format(strZh,"张泽"));
		System.out.println("英文:" + MessageFormat.format(strEn,"ZhangZe"));
		System.out.println("法文:" + MessageFormat.format(strFr,"ZhangZe"));
	}
}

/*
 *	使用MessageFormat类处理动态文件使用方法:
 *	public static Stirng format(String pattern, Object… arguments)
 */


PS:
1、取得各个国家的ISO编码方法:
IE浏览器,选择[工具]->[Internet选项]->[常规]->[语言]->[添加]

2.将一个中文编码变成Unicode编码方法:运行:native2ascii.exe命令输入中文后,回车:


国际化程序_第2张图片


问题:1、ResouceBundle.getBundle()方法的参数不熟悉
2、读取属性文件的方法:
getString();与toString()区别和用处?
3、怎样把汉字转换成Unicode编码?请移驾收藏的一篇论坛:http://topic.csdn.net/u/20080509/22/1ec7de0a-3fb1-4c61-a728-c8a5ed621cdf.html

你可能感兴趣的:(object,String,语言,import,工具,internet)