淘先锋技术网

首页 1 2 3 4 5 6 7

如果简单使用信息文件message.properties,可以使用java.util.Properties直接load文件即可获取键值对。

但是如果考虑到国际化,需要将message.properties的内容写成不同语言的文字,也许可以考虑分别建立message.properties,message1.properties,message2.properties等等的文件存储不同的语言文字,然后在使用java.util.Properties加载时,使用Locale.getDefault()获取默认语言,或者根据客户端信息生成Locale实例,以此来写一堆if语句逐个判断使用哪个properties文件。

java.util.ResourceBundle就是将上面的过程简化的类,ResourceBundle.getBundle("message",Locale.getDefault())可以根据Locale的值自动判断对应的message.properties文件,但是自动总是要有代价的,就是命名properties文件时,有固定格式:自定义名_语言代码_国家代码.properties。如果没有对应Locale的文件,会再找默认的message.properties。
关于语言和国家如下:

语言参数是一个有效的 ISO 语言代码。这些代码是由 ISO-639 定义的小写两字母代码。在许多网站上都可以找到这些代码的完整列表,如: 
http://www.loc.gov/standards/iso639-2/englangn.html。    
国家参数是一个有效的 ISO 国家代码。这些代码是由 ISO-3166 定义的大写两字母代码。在许多网站上都可以找到这些代码的完整列表,如: 
http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html。

最后,资源文件都必须是ISO-8859-1编码,所以如中文GBK等字符集编码文件,需要使用JDK自带的工具native2ascii转码,命令:native2ascii -encoding 源文件字符集  源文件名  目标文件名。

java.util.ResourceBundle

ResourceBundle类通常是用于针对不同的语言来使用的不同语言属性文件; 使用这个类,要注意的一点是,它使用的properties文件的文件名是有规范的:一般的命名规范是:自定义名_语言代码_国别代码.properties, 如果....

java.util.ResourceBundle

Innerclasses: ResourceBundle.ControlExtendedby: ListResourceBundle, PropertyResourceBundlezh_cn资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如 ),程序可以从适合当前用户语言环...

java.util.ResourceBundle 使用详解

一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以:        轻松地本地化或翻译成不同的语言        一次处理多个语言环境        以后可以轻松地进行修改,支持更多的语言....