1 Locale 和 ResourceBundle 简介
ResourceBundle
Locale 和 ResourceBundle都是java.util中的类,是实现国际化关键的类。
1.1 Locale
Locale表示特定的地理、政治、文化地区。
Locale[] locals = Locale.getAvailableLocales();//返回所有已安装语言环境的数组
for(Locale local: locals){
//打印出此语言环境的语言代码和国家/地区代码
System.out.println( local.getLanguage()+ "_"+local.getCountry());
}
显示的结果:(只显示一部分)
ja_JP
en_US
en_GB
en_NZ
zh_TW
en_IE
en_IN
en_AU
zh_CN
zh_HK
en_CA
Locale locale = Locale.getDefault();//获得此 Java 虚拟机实例的当前默认语言环境。
System.out.println(locale.getLanguage()+"_"+locale.getCountry());
zh_CN
当改变电脑的默认地区时,返回的默认语言环境就会改变。比如将 地区改为 英语(美国),其显示的结果为:en_US
1.2 ResourceBundle
ResourceBundle 可以根据当前用户的语言环境来读取相应的资源包
1 建立一个资源包(com.xiaochuan.resource),在包里定义两个资源文件(.properties)
命名规范为:资源名_语言代码_地区代码.properties
resource_en_US.properties
resource_zh_CN.properties
文件内容为:
#resource_en_US.properties
name = Tom
sex = male
#resource_zh_CN.properties
# name = 汤姆
name = \u6C64\u59C6
# sex = 男
sex =\u7537
注意:在properties文件输入中文时要进行编码转换(可以使用jdk中bin目录下的native2ascii.exe进行编码转换,也可以使用Eclipse中的插件)
2 读取资源文件内容的方法
public static String getValue(String key){
//读取资源文件,getBundle(String str,Locale loclae)中的str为资源文件的路径,locale为语言环境
ResourceBundle rb = ResourceBundle.getBundle(
"com.xiaochuan.resource.resource",Locale.getDefault());
return rb.getString(key);
}
public static void main(String[] args){
String str1 = getValue("name");
String str2 = getValue("sex");
System.out.println(str1);
System.out.println(str2);
}
汤姆
男
如果将 本机 的 语言区域改成 英语(美国),显示就会变成:
Tom
male
ps:在getBundle方法中,如果将第二个参数定义成 new Locale("en","US")
写到这里,这只是国际化的读取资源文件的部分。但如果 要在 java代码中(做报表时)有些字段需要国际化时,就可以按照以上方式来定义一个类,在该类中来定义一个静态的getValue()方法。
ps : 不足之处 请多多指教
分享到:
相关推荐
阅读本文之前,你应该了解过SpringBoot的国际化实现与原理,在这里简单介绍下: 1. 国际化 国际化(internationalization),又称为i18n(因为这个单词从i到n有18个英文字母,因此命名)。对于某些应用系统而言,它...
在WPF中界面国际化很容易实现,但是数据国际化确实是一个难题。为了解决项目中的需求,我设计了解决方案。 思路: 1.在数据库中,需要国际化的字段存放国际化key值; 2.在xaml中创建多套国际化,key为数据库中的值...
这是一个关于处理javascript的国际化问题的一篇技术文章。
struts2数据验证与国际化 一个PPT,内有很多可看的内容. 朋友还是看看吧!
Spring实现国际化的一个小例子
代码的详细描述详见博客 ssm框架上实现国际化/多语言
用Java写的一个国际化语言配置模块,可实现简单的国际化配置。
用springmvc做的一个国际化小例子,包含如何在页面和java代码中获取国际化资源
这是一个可以在eclipse和myeclipse下使用的国际化插件.挺好用的!!
这几天学习在js文件中实现国际化费了不少劲,现在传一简单的代码(已实现!)供大家参考一下~~
winform程序的国际化处理.便于一程序发布成不同的语言版本.
简单的jquery国际化小案例,代码注释也很详细,容易上手,找了好多案例,都感觉不是很好,就仿造别人写了一个
一个简单的通过js实现国际化,并且可实现参数传递,代码十分简洁
这是一个国际化的小例子,仅供参考.其实要我写这个很烦人的
一个小的Struts国际化完整dome!
.net语言中web项目实现国际化,多语言。例子很简单,大家一看就懂
实现国际化功能最直接的方法就是为每一个国家或地区的用户单独设计页面,但这样做工作量会很大,也不易维护和升级。为了解决这个问题,现在普遍的做法是将需要国际化的资源信息保存在资源文件中,并根据本地信息来...
财务报告与分析一种国际化视角.pptx
这是一个能够实现JS 文件国际化的内容,jQuery.i18n.properties
1. 首先建一个MVC国际化项目Internationalization。 2. 选中项目右键-->“添加”-->“添加ASP.NET文件夹”-->“App_GlobalResources”。 3. 选中“App_GlobalResources”右键添加一个资源文件Language.resx。在其中...