国际化Locale,ResourceBundle,MessageFormat

Locale类是用来国际化数据的
        每一个locale对象都代表一个特定的的确,政治文化,地区和创建方法
    首先是创建方法:
            // 方法一:调用默认的locale
            Locale locale = Locale.getDefault();
            // zh-CN 华 - 中国  zh-HK 华 - 香港 SARzh-MO 华 - 澳门
            System.out.println("locale:"+locale);

            //方法二:使用Locale.java中的静态对象,有很多
            Locale locale1=Locale.KOREA;
            System.out.println("locale1:"+locale1);

            //方法三:自动创建
            Locale enLocale = new Locale("en");
            Locale locale1= new Locale;("语言代号如zh", "国家代号如CN");
            System.out.println("locale1:"+locale1);
     Locale的相关方法
    方法声明               功能描述
    String getCountry()    获取Locale实例对象的ISO国家代码
    String getLanguage()   获取Locale实例对象的ISO语言代码
    String getVariant()    获取Locale实例对象的变量编码
    String getDisplayCountry()     获取Locale实例对象适合显示给用户的国家名称
    String getDisplayCountry(Locale inLocale)
    String getDisplayLanguage()    获取Locale实例对象适合显示给用户的语言名称
    String getDisplayLanguage(Locale inLocale)
    String getDisplayName()    获取Local实例对象显示的名称
    String getDisplayName(Locale inLocale)

ResourceBundle类:处理固定文本
    在设计一个国际化的应用时,应该把程序显示的文本内容(例如,菜单和按钮的标题)从源文件中分离出来,放在独立的资源文件(扩展名为.properties的文件)中,并针对不同的本地环境编写不同的资源文件
    方法:
        构造:    getBundle(String baseName)
                 getBundle(String baseName,Locale locale)
        成员:     getString(String key)返回此资源束中相应密钥的值
    使用:
        Locale locale=Locale.US;
        ResourceBundle myResources= ResourceBundle.getBundle("MyResources",locale);
        myResources.getString(String key)

MessageFormat类:处理动态文本
        该类提供了一种用参数替换模式字符串中的占位符的方式,它将根据模式字符串中包含的占位符产生一系列的格式化对象,然后调用这些格式化对象对参数进行格式化,并将格式化后的结果字符串插入到模式字符串中的适当位置。
            On {0},there was {1} on planet {2}.
        上述的模式字符串中,花括号以及花括号内的数字被称为占位符,如{0}、{1},这些占位符都会被MessageFormat格式化的参数所代替。
        方法:
            构造:public MessageFormat(String pattern)
                public MessageFormat(String pattern, Locale locale)
            成员: format()方法
                例:String pattern = "On {0},{1} destroyed {2} houses and caused {3} of damage.";
                    Object[] msgArgs = {"2010.11.03", "a hurricance", "100", "2000000"};
                    MessageFormat mf = new MessageFormat(pattern);
                    String result = mf.format(msgArgs);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值