,,Java ResourceBundle案例详解

,,Java ResourceBundle案例详解

本文主要介绍Java ResourceBundle案例的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

JAVA中ResourceBundle使用详解

这个类主要用于解决国际化和本地化问题。国际化和本地化不是两个概念,两者是一起出现的。可以说国际化的目的是为了实现本土化。比如我们中文用“取消”,英文用“取消”。如果我们的程序是面向国际的(这也是软件发展的一个趋势),那么用户一定是多语种的,所以有必要实现国际化。ResourceBundle可以帮助我们轻松地完成这项任务:当一个程序需要特定于地区的资源(比如String)时,可以从资源包(大多数情况下是。属性文件)适合当前用户的区域设置。通过这种方式,可以编写很大程度上独立于用户区域设置的程序代码,这将资源包中大多数(如果不是全部)特定于区域设置的信息隔离开来。

这使得编写的程序能够:

轻松本地化或翻译成不同的语言。

一次处理多个区域设置。

以后可以很容易地修改它,以支持更多的地区。

简单地说,这个类的功能就是读取资源属性文件(properties file),然后根据名称信息(localization information)的。属性文件,匹配当前系统的国家语言信息(也可以由程序指定),然后获取相应属性文件的内容。

要使用这个类,属性应该遵循特定的命名约定。一般的命名约定是:自定义名称语言代码国家代码.属性如果是默认的,直接写成:自定义名称.属性。

例如:

myres_en_US .属性

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转义格式。转换方法是通过JDK自己的工具native2ascii。

ResourceBundle的类层次结构

PropertyResourceBundle在Java属性文件中存储本地化的文本。

从ResourceBundle中获取值

获得ResourceBundle实例后,可以通过以下方法获得本地化值。

getObject(字符串键);

getString(字符串键);

getStringArray(字符串键);

还可以通过keySet()方法获得所有的键。set keys=bundle . keyset();

通过查看文档可以获得其他ResourceBundle方法。

测试和验证

创建4个新的属性文件。

my _ en _ us . properties:cancel key=取消

my _ zh _ cn . properties:cancel key=\ u53d 6 \ u6d 88(取消)

my _ zh . properties:cancel key=\ u53d 6 \ u6d 88 zh(cancel zh)

my . properties:cancel key=\ u53d 6 \ u6d 88 default(取消默认值)

获取捆绑包

resource bundle bundle=resource bundle . get bundle(' RES ',新区域设置(' zh ',' CN '));

新的区域设置(“zh”、“cn”)提供了本地化信息。在上面的代码行中,程序将首先在类路径下查找my_zh_CN.properties文件。如果my_zh_CN.properties文件不存在,查找my_zh.properties如果还是不存在,继续查找my.properties如果找不到,会抛出异常。

密码

导入javax . annotation . resource;

导入Java . util . locale;

导入Java . util . resource bundle;

/**

* @作者OovEver

* 2018/1/14 22:12

*/

公共类Main {

公共静态void main(String args[]) {

资源包=资源包。获取捆绑包('我的',新区域设置(' zh ',' CN '));

字符串取消=捆绑。getstring(“取消键”);

System.out.println(取消);

bundle=资源包。获取捆绑包('我的',区域设置。美国);

取消=捆绑。getstring(“取消键”);

System.out.println(取消);

bundle=资源包。获取捆绑包(“我的”,区域设置)。get default());

取消=捆绑。getstring(“取消键”);

System.out.println(取消);

bundle=资源包。获取捆绑包('我的',区域设置。德语);

取消=捆绑。getstring(“取消键”);

System.out.println(取消);

bundle=资源包。get bundle(' my ');

for(字符串键:bundle。密钥集()){

系统。出去。println(捆绑包。getstring(key));

}

}

}

输出结果

取消

取消

取消

取消

取消

说明:前面三个分别按照美国zh_CN,默认的结果输出,第四个由于我们未定义德国的属性文件,这时ResourceBundle为我们提供了一个回退(也就是一个备用方案),这个备用方案就是根据当前系统的语言环境来得到的本地化信息。所以若是找不到德国的的,之后就会去找瓷器;(中国)中国了,所以找到了res_zh_CH.properties这个资源包。最后一个是若有多个属性文件,可以按照地图的形式遍历,获得属性文件内的各个值。

到此这篇关于Java 语言(一种计算机语言,尤用于创建网站)资源包案例详解的文章就介绍到这了,更多相关Java 语言(一种计算机语言,尤用于创建网站)资源包讲解内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: