一、Java如何国际化
建立消息资源文件.
在消息资源文件中。分别写入各国语言。需要统一编码。在jdk的安装目录有个编码工具
用到jstl的国际化标签。写入消息资源文件中的key
如果用struts框架的话。struts有个<html:message key=>的标签可以做到
我说了这些不知道你能否听懂。呵呵!
二、国际化,如何利用java代码实现?
Locale local = Locale.US;
// System.out.println(local.getCountry() + ::
// + local.getDisplayCountry());
// System.out.println(local.getLanguage() + ::
// + local.getDisplayLanguage());
// Locale[] locales = Locale.getAvailableLocales();
//
// for (Locale i : locales) {
// System.out.print(i.getCountry() + :: + i.getDisplayCountry()
// + :====: );
// System.out.println(i.getLanguage() + :: + i.getDisplayLanguage());
// }
//资源包的位置且在,MyResource_zh_CN.properties\MyResource_en_US.properties这个文件中要有test.userName=aaaa
String userName = ResourceBundle.getBundle(
com.jpioneer.i18n.MyResource,local).getString(test.userName);
System.out.println(userName);
String errors = ResourceBundle.getBundle(
com.jpioneer.i18n.MyResource,local).getString(errors.required);
System.out.println(errors);
String formatErrors = MessageFormat.format(errors, UserName);
System.out.println(formatErrors);
三、java国际化怎么实现
以下分3点进行讲述
1、我们使用java.lang.Locale来实现java国际化。
java.lang.Locale代表特定的地理、政治和文化。需要Locale来执行其任务的操作叫语言环境敏感的操作。
构造一个系统默认的Locale:
Locale defaultLocale = Locale.getDefault();
String country = defaultLocale.getCountry();//返回国家地区代码
String language = defaultLocale.getLanguage();//返回国家的语言
String displayCountry = defaultLocale.getDisplayCountry();//返回适合向用户显示的国家信息
String displayLanaguage = defaultLocale.getDisplayLanaguage();//返回适合向用户展示的语言信息
String displayName = defaultLocale.getDisplayName();//返回适合向用户展示的语言环境名
加入当前Java虚拟机线程所处的操作系统的区域语言设置为“中文(简体,中国)”,则上边的运行结果依次将会是:
CN
zh
中国
中文
中文(中国)
根据国家地区和语言构造一个Locale(语言环境)
Locale currentLocale = new Locale(“zh”, ”CN”);
构造方法为:Locale(String language, String country);
2、使用ResouceBundle读取国际化资源文件
ResourceBundle资源包包含特定语言环境的对象。使用其可以加载并读取语言环境资源。
1. 轻松的本地化或者翻译成不同的语言
2. 一次处理多个语言环境
3. 以后可以轻松的进行修改,一遍支持更多的语言环境。
当程序需要特定于语言环境的对象时,它使用getBundle()方法加载ResourceBundle类
ResourceBundle rb = ResourceBundle.getBundle(“res.MessageBundle”, currentLocale);
其中,res.MessageBundle代表的是我们在src下建立了一个res文件夹,而res文件夹下有一个名为MessageBundle.properteis的资源文件。我们允许在此建立多个国际化资源文件:MessageBundle_zh_CN.properties;
MessageBundle_en_US.properteis;
其中MessageBundle就是要在构造ResourceBundle时使用的字符串,这个名字合法即可,不需要特定约束。后边的名字一定要遵循规则,resourceName_language_country.properteis;
然后我们使用rb.getString(key);就可以获取资源文件中的Key对应的value。
3、实际应用距离:struts
在jsp页面中,即可直接使用来调用ResourceBundle资源文件中的内容