如果简单使用信息文件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 源文件字符集 源文件名 目标文件名。
版权声明:本文为CSDN博主「weixin_33726943」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_33726943/article/details/91792593
原文链接:https://blog.csdn.net/weixin_33726943/article/details/91792593
更多相关推荐
java.util.ResourceBundle使用详解(java国际化)
java.util.ResourceBundle使用详解 一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支....
java.util.ResourceBundle
Java中提供了一个工具类 ResourceBundle可以直接读取src下的properties文件(注意只能读该文件)再通过getString("");通过键获取值:例如:ResourceBundlerb=ResourceBundle.getBundle("log4j");Stringstr=rb.getString...
java.util.ResourceBundle
ResourceBundle类通常是用于针对不同的语言来使用的不同语言属性文件; 使用这个类,要注意的一点是,它使用的properties文件的文件名是有规范的:一般的命名规范是:自定义名_语言代码_国别代码.properties, 如果....
java.util.ResourceBundle
Innerclasses: ResourceBundle.ControlExtendedby: ListResourceBundle, PropertyResourceBundlezh_cn资源包包含特定于语言环境的对象。当程序需要一个特定于语言环境的资源时(如 ),程序可以从适合当前用户语言环...
java.util.ResourceBundle 使用详解
一、认识国际化资源文件 这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的语言 一次处理多个语言环境 以后可以轻松地进行修改,支持更多的语言....