学习_Java_Base_Struts_Java实现国际化

Struts  之  国际化
国际化的定义
-是指根据不同的国家和语言来显示不同的界面,或者程序提供了可以切换语言的功能,称之为国际化
-国际化的英文是Internationalization,因为单词太长,所有一般我们称之为I18N,因为中间有18个字母
国际化的意义
-当一个软件应用考虑到在全球范围内使用时,就必须考虑不同国家和语言的差异了,为了在不修改程序的前提下就软件应用适应全球,那么国际化就显得非常必要了,尤其是在WEB应用中

Java语言提供的国际化实现方法
-Java语言本身提供了如下三个类来实现国际化
java.util.ResourceBunble
-加载一个资源配置文件
java.util.Locale
-定义特定国家/语言环境
java.text.MessageFormat
-信息格式化

资源文件的命名规则
三种命名规则
-baseName_language_country.properties
-baseName_language.properties
-baseName.properties
规则
-baseName可以任意命名
-Language和country必须是java支持的语言的国家

Java语言提供的国际化实现方法
-国际化实例
DisplavLocales.java
Locale[] ls = Locale.getAvailableLocales();
for(int i=0; i<ls.length; i++){
	System.out.println(ls[i].getDisplayCountry() 
	+ ls[i].getCountry() + ";"
	+ ls[i].getDisplayLanguage() 
	+ ls[i].getLanguage());
}

创建两个配置文件
ResourceMessage.properties
ResourceMessage_zh_CN.properties
内容:
greeting=你好!
ResourceMessage_en_US.properties
内容:
greeting=hello!
使用native2ascii转码解决乱码问题
native2ascII source dest
使用ant调用native2ascii(推荐)

创建一个Build.xml文件
内容:
<project>
	<target name="i18n">
		<native2ascii 
			dest="com\\zhaofei\\show" 
			src="com\\zhaofei\\temp" 
			includes="*.properties" 
			encoding="utf-8">
		</native2ascii>
	</target>
</project>

将这个文件放在ant工具中执行

写I18NTest.java文件
package com.zhaofei.show;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

public class I18NTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Locale l = new Locale("zh", "CN");
		ResourceBundle rb = ResourceBundle.getBundle("ResourceMessage", l);

		String str = rb.getString("greeting");
		System.out.println(str);

		String result = rb.getString("greeting");
		result = MessageFormat.format(result, new Object[] { "tom" });
		System.out.println(result);

	}

}

注:使用MessageFormat时需要更改ResourceMessage_en_US.properties文件;
内容:
greeting=hello,{0}!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值