Java的国际化例子

PropertyResourceBundle bundle ;
bundle=(PropertyResourceBundle) ResourceBundle.getBundle("mess", Locale.US);
System.out.println( MessageFormat.format(bundle.getString("hello"),"loren" ) );

PropertyResourceBundle 是 ResourceBundle的子类,使用 ResourceBundle.getBundle来获取实例。
getBundle(String baseName)
getBundle(String baseName, Locale locale)
getBundle(String baseName, Locale locale, ClassLoader loader)
以上3个是使用较多的方法。

baseName,是消息文件的基础名,baseName不要加语言和国家后缀。ResourceBundle会自动根据参数、运行环境去查找资源文件。

baseName可以是简单的一个名字,如 "mess",或是带路径的 "config/mess",或是一个完整类名 "org.test.Main",那么它们分别对应的文件是以classpath为根目录进行查找
/mess_xx_xx.properties
/config/mess_xx_xx.properties
/org/test/Main_xx_xx.properties
其实,点和斜杠都是目录分隔符,没有区别。

接下来,说一下语言和国家的查找顺序,如果指定的语言国家的文件不存在,则找系统的语言国家文件,若还是不存在,则找没有后缀的文件,如mess.properties

按它的查找顺序来看,属性文件不添加任何后缀,那么它就是一个默认语言环境。也可以用它来获取属性文件,当作读取配置文件。
例如
jdbc.properties
ResourceBundle resource=.......
driver=resource.getString("driverName");
url=resource.getString("url");

再来说一下最后一个问题MessageFormat.format,它是将一个字符串中的{0}{1}{2}之类的占位符,替换成指定的值。
例如
MessageFormat.format("1+2={0},{1}", 1+2, "passed" );
foramt后的结果就是: 1+2=3,passed

OVER.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值