首页 > 编程知识 正文

resource文件怎么打开,resource注解的作用

时间:2023-05-04 17:26:32 阅读:61052 作者:2089

有关使用资源绑定的详细信息

这个类主要用于解决国际化和本地化问题。 国际化和本地化不是两个概念,而是两者都一起出现。 可以说国际化的目的是实现本地化。 例如,“取消”在中文中表示为“取消”,而在英语中使用“取消”。 如果我们的计划面向国际,也是软件发展的趋势。 使用的人们必然是多语言环境,需要实现国际化。 资源绑定有助于轻松完成此任务。 如果程序需要特定于区域设置的资源(如String ),则可以从适合当前用户区域设置的资源包(大多数情况下为. properties文件)中加载程序。 这样,您就可以创建与用户区域设置无关的程序代码,并且可以隔离区域设置特定的信息,即使很少或不是资源包。

这使您能够:

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

一次处理多个区域设置

稍后可以轻松修改以支持更多的区域设置

简而言之,该类的作用是读取资源属性文件(properties ),并基于. properties文件的名称信息(本地化信息)与当前系统的国家语言信息相匹配(也可以通过程序指定)

要使用此类,properties必须遵循一定的命名约定。 常规命名约定为自定义名称语言代码国家代码. properties,缺省情况下直接写为自定义名称. properties。

例如:

myres_en_US.properties

myres_zh_CN.properties

myres.properties

在中文操作系统中,如果同时存在myres_zh_CN.properties和myres.properties文件,则优先使用myres_zh_CN.properties,然后单击

未指定语言和区域的资源文件是系统的默认资源文件。

所有资源文件都必须经过ISO-8859-1编码,因此对于所有非西方语言处理,必须首先将其转换为Java Unicode Escape格式。 转换方法使用JDK附带的工具native2ascii。

资源绑定的类层次结构

PropertyResourceBundle将本地化文本保存在Java property文件中。

从资源绑定获取值

获取资源绑定实例后,可以通过以下方式获取本地化值:

gt object (字符串密钥;

getstring (字符串密钥);

获取字符串阵列(字符串密钥);

也可以使用keySet ()方法获取所有key。 Set keys=bundle.keySet (;

其他资源绑定方法可以通过查看文档获得。

测试和验证

新的四个属性文件

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

my _ zh _ cn.properties:cancel key=_ u53d6_ u6d 88 (取消() ) ) ) ) ) ) )。

my _ zh.properties:cancel key=_ u53d6_ U6 d 88 zh (zh取消) ) ) ) ) ) 652

my.properties:cancel key=u53d6 U6 d 88 default (取消默认值) () ) ) ) ) 0

获取绑定

resourcebundlebundle=resource bundle.get bundle (“RES”,newlocale )“zh”,“CN”)

1

其中,new Locale(“zh”、“CN”提供本地化信息。 在上面的代码中,程序首先在classpath下查找my_zh_CN.properties文件,如果my_zh_CN.properties文件不存在,则查找它

代码

import javax.annotation.resource;

import java.util.Locale;

import java.util.ResourceBundle;

公共类主{

publicstaticvoidmain (string args [ ] ) {

resourcebundlebundle=resource bundle.get bundle (“my”,newlocale )“zh”,“CN”)

string cancel=bundle.getstring (“cancel key”);

system.out.println(Cancel );

bundle=resource bundle.get bundle (" my ",Locale.US );

cancel=bundle.getstring (“cancel key”);

system.out.println(Cancel );

bundle=resource bundle.get bundle (" my ",Locale.getDefault ) );

cancel=bundle.getstring (“cancel key”);

system.out.println(Cancel );

bundle=resource bundle.get bundle (" my ",Locale.GERMAN );

cancel=bundle.getstring (“cancel key”);

system.out.println(Cancel );

bundle=resource bundle.get bundle (“my”

for (string key : bundle.keyset ) () () ) ) ) )。

system.out.println (bundle.getstring (key ) );

}

}

}

输出结果

取消

取消

取消

取消

取消

说明:前三个分别根据zh_CN、US、默认结果输出,第四个没有定义GERMAN属性文件,因此ResourceBundle是根据当前系统的语言环境获得的本地化信息所以如果找不到GERMAN,之后我会去找CHINA,所以我找到了一个叫res_zh_CH.properties的资源包。 最后,如果有多个属性文件,则可以通过Map的形式遍历属性文件中的每个值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。