第十一章:国际化程序实现原理

国际化程序实现原理

  所谓的国际化程序指的是同一个程序代码可以根据不同的国家实现不同的语言描述,但是程序处理的核心业务是相同的。

  现在假设有一款世界都认可的企业管理平台,那么这个企业的老板决定将这个产品推广到全世界各个大型上市公司,于是这些公司可能来自于中国、美国、德国,那么在这样的情况下,首先要考虑的问题是什么呢?

  通过分析后可以发现,如果想要实现国际化程序开发,那么要解决的问题就在于以下两点:

1、如何可以定义保存文字的信息

2、如何可以根据不同的区域语言的编码读取指定的资源信息

程序本身是一样的,只是文字不一样,仅此而已。

Locale类

  通过分析,如果要想实现国际化,那么首先需要解决的就是不同的国家用户的区域和语言的编码问题,而在java.util包中提供有专门描述区域和语言编码的类:Locale类(since 1.1),而后主要可以使用Locale类中的两个构造方法进行实例化。

  此时需要的是国家和语言的代码,而中文的代码:zh_CN、美国英语的代码:en_US,对于这些区域和语言的编码最简单的获得方式就是通过IE浏览器。

  如果说现在要想自动获得当前的运行环境,那么现在就可以利用Locale类本身默认的方式进行实例化 

   在实际的开发过程之中,很多人可能并不关心国家和语言的编码,所以为了简化开发,Locale也将世界上一些比较著名的国家的编码设置为了常量。

 

  使用常量的优势在于可以避免一些区域编码的繁琐(不用IE查了).

ResourceBundle读取资料源文件

  现在已经准备好了资源文件,那么随后就需要进行资源文件的读取操作了,而读取资源文件主要依靠的是java.util.ResourceBundle类完成,此类定义如下。

  ResourceBundle是一个抽象类,如果说现在要想进行此类对象的实例化可以直接利用该类中提供的一个static方法完成

  baseName:描述的是资源文件的名称,但是没有后缀(cn.mldn.message.Messages);

 根据key读取资源内容:

 

  如果资源没有放在包里面,则直接编写资源名称即可。 

  在进行资源读取的时候数据的key一定要存在,如果不存在则会出现如下异常信息(第一个异常是的)

java.util.MissingResourceException:Can't find resource for bundle java.util.PropertyResourceBundle,key infos

(错误资源异常,无法发现绑定的资源key,这个的异常记一下MissResourceException)

实现国际化程序开发

  现在国际化程序的实现前期准备已经全部完成了,也就是说依靠资源文件、Locale、ResourceBundle类就可以实现国际化的处理操作,那么下面来进行国际化程序的实现(核心关键:读取资源信息)。

1、在CLASSPATH下建立:cn.mldn.message.Message_zh_CN.properties;

格式化文本显示

  

猜你喜欢

转载自www.cnblogs.com/djlindex/p/11253291.html
今日推荐