国际化(i18n)学习

一 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。
  国际化(internationalization)又称为 i18n(读法为i 18 n,据说是因为internationalization(国际化)这个单词从i到n之间有18个英文字母,i18n的名字由此而来)
 1、对于程序中固定使用的文本元素,例如菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,需要根据来访者的地区和国家,选择不同语言的文本为之服务。
  2、对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示。

资源文件的内容通常采用"关键字=值"的形式,软件根据关键字检索值显示在页面上。一个资源包中的所有资源文件的关键字必须相同,值则为相应国家的文字。
并且资源文件中采用的是properties格式文件,所以文件中的所有字符都必须是ASCII字码,属性(properties)文件是不能保存中文的,对于像中文这样的非ACSII字符,须先进行编码。
 java提供了一个native2ascII工具用于将中文字符进行编码处理,native2ascII的用法如下所示:

二 编程实现固定文本的国际化

package i18n;

import java.util.Locale;
import java.util.ResourceBundle;
/**
 * 
* @ClassName: ForI18N 
* @Description: TODO(这里用一句话描述这个类的作用) 
* @author penny
* @date 2017年11月21日 下午10:46:58 
*
 */
public class ForI18N {
	public static void main(String[] args) {
		Locale cn = Locale.CHINESE;
		Locale en = Locale.US;
		
		ResourceBundle enrb=ResourceBundle.getBundle("i18n.my", en);
		ResourceBundle cnrb=ResourceBundle.getBundle("i18n.my",cn);
		
		System.out.println(cnrb.getString("user"));
		System.out.println(enrb.getString("user"));
	}
}





posted @ 2017-11-21 12:37  言非言  阅读(655)  评论(0编辑  收藏  举报