1. Java国际化简介
Java既然作为一个跨平台的语言就必然要在各种不同的语言环境中使用, 为了解决这个问题Java给我们提供了一个工具类ResourceBundle, 帮助我们实现Java的国际化, 核心的思想就是, 对不同的语言提供一个不同的资源文件.
2. Java国际化的步骤
(1) 当然是编写要实现国际化的主程序.
(2) 定义资源文件, 注意资源文件的定义要符合一定的规范, 规范如下: 如果我们将缺省的资源文件的文件名取名为message.properties, 那么相应的其他语言的资源文件名就是message_语言代码_国家代码.properties. 例如: 我们的语言汉语的语言代码是zh, 国家代码是CN, 所以简体中文的资源文件名就是: message_zh_CN.properties, 英语的语言代码是en, 美国的国家代码是US, 所以美国英语的资源文件就是: message_en_US.properties.
(3) 根据软件的使用环境取得相应的资源文件
(4) 在取得的资源文件中取得Key对应的值.
3. 例子(注意这里的资源文件必须放在classpath的根路径下)
(1) 主程序ParamFormat.java
package test.abu.csdn.tmp;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;
public class ParamFormat {
public static void main(String[] args) {
// 测试缺省的资源文件
testCustom();
// 测试美国英语的资源文件
testDefault();
}
public static void testDefault() {
// 获得缺省的系统区域
Locale locale = Locale.getDefault();
// 获得资源文件
ResourceBundle rb = ResourceBundle.getBundle("message", locale);
// 获得相应的key值
String greeting = rb.getString("greeting");
String userInfo = rb.getString("userinfo");
String name= "liky";
int age = 18;
Date birth = new Date();
// 格式化参数,注意是一个Object的数组,这意味着可以将任何类型的对象来格式化模板.
Object[] params = {name,age,birth};
// 格式化参数,返回格式后的字符串
String result = MessageFormat.format(userInfo, params);
System.err.println(greeting + result);
}
public static void testCustom() {
// 设置定制的语言国家代码
Locale locale = new Locale("en_US");
// 获得资源文件
ResourceBundle rb = ResourceBundle.getBundle("message", locale);
// 获得相应的key值
String greeting = rb.getString("greeting");
String userInfo = rb.getString("userinfo");
String name= "liky";
int age = 18;
Date birth = new Date();
// 格式化参数,注意是一个Object的数组,这意味着可以将任何类型的对象来格式化模板.
Object[] params = {name,age,birth};
// 格式化参数,返回格式后的字符串
String result = MessageFormat.format(userInfo, params);
System.err.println(greeting + result);
}
}
(2) 缺省的资源文件message.properties(这里使用native2ascii将中文转化成了ISO-8859-1编码.)
greeting \u6B22\u8FCE\u60A8\u7684\u5230\u6765,
userinfo=\u59D3\u540D\: {0}, \u5E74\u9F84\: {1}, \u751F\u65E5\: {2}.
(3) 美国英语的资源文件message_en_US.properties
greeting Welcome my boy,
userinfo=name: {0}, age: {1}, birthday: {2}.
4.总结
其实这就是Java的i18n的本质了, 其他的一些框架例如struts, webwork等的国际化核心都是如此.
转自:http://blog.csdn.net/csuliky/archive/2009/05/30/4225800.aspx
分享到:
相关推荐
java 国际化 i18n test
java实现国际化I18N简单实例,没用任何框架.zip java实现国际化I18N简单实例,没用任何框架.zip
基于i18n国际化微服务统一处理错误码的demo
java国际化实例,内置源码,还有说明文档。源码包里有编译好的jar文件,已经可以执行,可以实现中文和英文界面的切换,无需要安装插件,调用系统资源,有需要的朋友们请下载吧。 个人体会:做项目时需要用到国际化的...
国际化-i18n <br>写的相当不错的一本书,而且也相当清晰,不过是英文版。
NULL 博文链接:https://zhouxianglh.iteye.com/blog/521629
注意事项: 将I18nUtil.java 和相关.properties文件放在同级目录下, 自动编译后 查看build里的class文件 确定.properties文件在目录中,然后运行即可
Java的i18n问题解决文档,代码,文档解决java中国际化的问题,详细介绍
springmvc 实现i18n国际化+freemarker小实例demo 亲测有用
用于多种国家语言资源项目语言包
自己整理的sping boot国际化,切换中英文页面,切换时,将当前语言类型保存到session中,保证跳转页面时,语言类型沿用上个页面的语言类型
用MyEclipse工具实现的一个struts2国际化,用于刚接解struts2中i18n的同学学习。很好的代码,深入浅出。
i18n 国际化工具(适用于一切项目) 简介 利用配置文件进行项目国际化多语言的工具包 资源文件为典型的java properties文件,通过key=value形式定义国际化需要的消息,其中key为各语言消息统一使用的消息编码,用户...
关于国际化的一个典型例子,适合刚刚接触的人看一下
java实现国际化中英文语言切换 java语言切换JSP国际化 java实现国际化中英文语言切换 java语言切换JSP国际化
背景Spring MVC 的国际化是建立在Java国际化的基础之上的,其一样也是通过提供不同国家语言环境的消息资源,然后通过 Resource Bundle 加
所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语、英语等。大概的原理就是利用语言环境的不同的选择相应的资源文件。
jquery.i18n-properties-1.0.9 资源文件包。 包含: jquery.i18n.properties.js jquery.i18n.properties-min.js 加载方法: jQuery.i18n.properties({ name:'abc', path:'abc/d/', mode:'map', cache:false, ...
当我们在做前台页面开发时,由于页面内容过多,过于繁杂,有的时候一个页面上千行的(当然这样的页面也就算一般...与 Java 里的资源文件类似,jQuery.i18n.properties 采用 .properties 文件对 JavaScript 进行国际化。
它是一个eclipse插件,用于定位需要转换以进行Java软件国际化(i18n)和进一步本地化(L10n)的常量字符串。 开发人员可以使用该工具快速制定国际化版本,也可以检查是否忘记将i18ned版本中的某些常量字符串外部化...