JAVA之i18n
来源:互联网 发布:页面初始化加载js 编辑:程序博客网 时间:2024/06/02 16:30
JAVA由于采用unicode编码,因此i18n(即internation,国际化)比较方便。下面实现一个能根据操作系统的默认地区选择显示字符的button,来说明java怎样方便地实现本地化。
基本思路是将button上要显示的字符与一个本地化信息的专用资源包联系起来。资源包的创建使用java.util.ResourceBundle类。资源包一般利用静态getBundle()方法得到。getBundle()方法的函数声明如下:
public static final ResourceBundle getBundle(String baseName,Locale locale);
其中baseName表示的本地化信息配置文件的基本名,比如创建中文简体的本地化信息配置文件,在应用程序的文件夹下创建一个文本文件localeInfo_zh_CN.properties,其中localeInfo为信息配置文件的基本名,zh是语言代码中文简体,CN是国家代码中国。若要支持英文,再创建一个文本文件localeInfo_us_EN.properties。利用文本创建信息配置的好处是修改显示信息时不用编译,而且可以很方便地添加更多的本地资源信息。localeInfo_zh_CN.properties的内容如下:
label1 = 按钮一
label2 = 按钮二
相应地,localeInfo_us_EN.properties的内容如下:
label1 = button one
label2 = button two
然后一定要记住用j2sdk的native2ascii工具将文本文件转化为ascii码,不然非英文的信息就将显示为乱码。localeInfo_zh_CN.properties转化为ascii后的内容如下:
label1 = /u6309/u94ae/u4e00
label2 = /u6309/u94ae/u4e8c
locale是一个Locale类,此类代表了特定的地理,政治或文化区域。可以通过new Locale(String language,String country)来创建,此 构 造 函 数 第 一 个 参 数 是ISO-639 中 定 义 的 语 言 代 码(http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt); 第 二 个 参 数 为ISO-3166 中 定 义 的 国 家 代 码(http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html)。比如中国简体中文的Locale类可以通过zhLocale = new Locale("zh","CN");创建。
于是我们就可以利用ResourceBundle bundle = ResourceBundle.getBundle("languageInfo",Locale.getgetDefault());创建本地化资源信息包,其中Locale.getgetDefault()是获取操作系统默认地区的静态方法。
然后利用语句JButton b1=new JButton(bundle.getString("label1"));
JButton b2 = new JButton(bundle.getString("label2"));将按钮b1,b2与资源信息包中相应的键值对应起来。这样,当应用程序在默认地区为中文的操作系统上运行时,按钮b1显示为“按钮一”,b2显示为“按钮二”;在英文操作系统上运行时,相应显示为“button one”,"button two"。
也可以人为地设定默认地区,利用Locale.setDefault(zhLocale);语句就可将默认地区设置为刚才创建的中国简体中文zhLocale。
- JAVA之i18n
- Java I18N
- JAVA I18N
- java--I18N
- 诗歌rails 之 i18n
- Struts2之I18N
- ireport开发之I18n
- rails 之 i18n
- 《Angular2之i18n运行机制》
- Java 的i18n问题
- Java的国际化(i18n)
- Java的国际化(i18n)
- Java的国际化(i18n)
- JAVA 初学 i18n 国际化
- 【Java】I18N国际化
- java 关于i18n
- struts2之国际化(i18n)
- i18n
- [音乐欣赏]李朝晖——体会
- 一些有用的连接
- 几个字符串转换的例子
- Assert是你的朋友[摘录]
- 最近有点累!
- JAVA之i18n
- 事隔四个月,两次被偷,真的很生气……
- 重生
- gmail,msn,yahoo,qq 等邮箱图标生成大全
- Windows Mobile开发环境搭建指南
- 终究还是我伤了你
- 在Smartphone/Pocket PC 2003上设置提醒
- 孙伟院长在中印软件峰会上的讲话
- 点播IOD与PUSH方式(转摘)