对与locale和resourceBundle的理解

locale:官方解释:

        java.util.Locale类对象表示了特定的地理,政治和文化地区。 以下是有关区域设置的要点:

  • 需要Locale来执行其任务的操作称为语言环境敏感,它使用Locale,形成信息的用户。

  • Locale是一种机制,用于识别对象,而不是一个容器对象本身。


locale: 理解

locale类它的作用就是对文件,或者某个内容,某个资源,以不同的形式显示,这种形式包括,地理,政治,文化,语言,国家等

举例

(以英文形式显示)

Locale  locale = new Locale("en")

(以美国国家英文显示)

Locale locale = new Locale("en","US");


1Locale(String language) 
这个构造一个语言环境的语言代码。
2Locale(String language, String country) 
这个构造一个语言环境的语言代码。
3Locale(String language, String country, String variant) 
这个构造一个语言环境的语言,国家,变体。



ResourceBundle 就是对某个资源文件进行本地化作用的(这个个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。)

首先被绑定资源文件须有特殊的命名:一般的命名规范是: 自定义名_语言代码_国别代码.properties

比如:
myres_en_US.properties
myres_zh_CN.properties
myres.properties
如果myres_zh_CN.properties、myres.properties两个文件都存在,则优先会使用myres_zh_CN.properties,当myres_zh_CN.properties不存在时候,会使用默认的myres.properties。
 
没有提供语言和地区的资源文件是系统默认的资源文件。
资源文件都必须是ISO-8859-1编码,因此,对于所有非西方语系的处理,都必须先将之转换为Java Unicode Escape格式。转换方法是通过JDK自带的工具native2ascii.
意思是都必须先转成AScll码


myres.properties
aaa=good
bbb=thanks

myres_en_US.properties
aaa=good
bbb=thanks

myres_zh_CN.properties
aaa=\u597d
bbb=\u591a\u8c22


public class TestResourceBundle {
        public static void main(String[] args) {
                Locale locale1 = new Locale("zh", "CN");
                ResourceBundle resb1 = ResourceBundle.getBundle("myres", locale1);
                System.out.println(resb1.getString("aaa"));

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

                Locale locale3 = new Locale("en", "US");
                ResourceBundle resb3 = ResourceBundle.getBundle("myres", locale3);
                System.out.println(resb3.getString("aaa"));
        }
}





good

Process finished with exit code 0


看了,觉得好,请点赞哦



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值