Java 国际化支持(ResourceBundle,Locale)

 

http://rqzhou.iteye.com/blog/1036470

Java对国际化的支持非常容易。通过简单的几个类就可以搞定。

   朋友拖我给他的亲戚做毕业设计时用到了国际化的类。朋友的亲戚不懂。在此变写了个随笔。

在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class

这个方法肯定不合适。那么我们如何寻找一种更适合的方法呢。我们可以通过property来进行。但java提供了一个更好的处理国际化的类ResourceBundle、Locale类。Locale 对象表示了特定的地理、政治和文化地区。ResourceBundle 是一个资源处理类,有两个子类ListResourceBundle, PropertyResourceBundle 。这里不阐述这两个类,这里通过阐述ResourceBundle类。这样下面的子类也就是没有什么难理解的地方。

myres.properties

aaa=good
bbb=thanks

myres_en_US.properties

aaa=good
bbb=thanks

myres_zh_CN.properties

aaa=\u597d
bbb=\u591a\u8c22

import java.util.Locale;
import java.util.ResourceBundle;
public class TestResourceBundle {
public static void main(String[] args) {

                //生成一个中国(country),中文(language) 的locale对象
                Locale locale1 = new Locale("zh", "CN");

                //通过locale1 产生一个资源包类,此时是优先查找myres_zh_CN.properties

                //如果查找不到则查找它的父文件myres_zh.properties

                //如果还查找不到则查找myres.properties文件(这个文件为默认)

                //如果还没有查找到则抛出 java.util.MissingResourceException

                ResourceBundle resb1 = ResourceBundle.getBundle("myres", locale1);

                // 查找aaa的属性Value,此时aaa为key 。如果查找不到此key的话仍然会抛出

                // java.util.MissingResourceException 
                System.out.println(resb1.getString("aaa"));
                ResourceBundle resb2 = ResourceBundle.getBundle("myres", Locale.getDefault());
                System.out.println(resb1.getString("aaa"));

                // 生成一个美国的英语的locale对象。其它详见上面的说明。
                Locale locale3 = new Locale("en", "US");  
                ResourceBundle resb3 = ResourceBundle.getBundle("myres", locale3);
                System.out.println(resb3.getString("aaa"));
        }
}

运行结果:



good

转载于:https://www.cnblogs.com/IamThat/archive/2013/05/17/3083340.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值