使用java.util.ResourceBundle国际化

若是简单使用信息文件message.properties,能够使用java.util.Properties直接load文件便可获取键值对。html

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

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 源文件字符集  源文件名  目标文件名。网站

相关文章
相关标签/搜索