ResourceBundle提供了一种本地化资源的机制。
大致原理:
提供不同语言或者不同国家的properties文件。
假设properties文件名为message,不同语言的文件名对应为:message_{language}_{country}.properties。
language以及country可以省略。如果全部省略,就是默认文件。
ResourceBundle提供了一个getBundle的静态方法,入参是properties文件的文件名和Local对象。
该方法会在classpath下寻找对应的本地化资源文件。
顺序:
优先查找后缀为language以及country的资源文件;
如果没有,查找后缀为language的资源文件;
如果没有,按照当前系统的Local实例变量查找对应的资源文件,比如我系统是中文,就按照Local("zh","CN")来找;
如果还没有,就使用默认资源文件。
message.properties:
key1=defaultValue
message_en.properties:
key1=en_Value
message_en_US.properties:
key1=en_US_Value
当前系统的Local为:zh_CN
输出:
zh_CN
defaultValue
en_US_Value
en_Value
defaultValue
Process finished with exit code 0
如果提供了一个message_zh_CN.properties文件,那么之前查到message.properties文件的就变为message_zh_CN.properties文件的内容。
注意点:
getBundle方法传入的资源文件名不能带“.prop”