java国际化

本文深入探讨了Java国际化的核心概念,包括国际化英文单词、本地化(Localization)与国际化(Internationalization)的区别,以及如何利用Java类实现程序的国际化。文章详细介绍了Java中用于国际化的主要类及其使用方法,并通过示例展示了如何创建和使用国际化资源文件。

国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母。国际化又称本地化(Localization,L10N)。

国际化相关的Java类
Java国际化主要通过如下3个类完成
java.util.ResourceBundle:用于加载一个资源包
java.util.Locale:对应一个特定的国家/区域、语言环境。
java.text.MessageFormat:用于将消息格式化

国际化资源文件
为实现程序的国际化,必须提供程序所需要的资源文件。资源文件的内容由key-value对组成。
资源文件的命名可以有3种格式:
basename_language_country.properties
basename_language.properties
basename_properties
若资源文件包含非西方字符,则需要用JDK自带的工具来处理:native2ascii

Locale类可获取各国区域环境(如:Locale.ENGLISH、Locale.CHINESE,这些常量返回一个Locale实例),也可以获取当前系统所使用的区域语言环境。

ResourceBundle类可根据指定参数获取相应的资源,常用方法如下:
ResourceBundle.getBundle(basename)//获取当前系统所使用的区域环境获得指定资源文件
ResourceBundle.getBundle(basename,locale)//根据指定的区域获取对应的资源文件

 

 

import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 国际化测
 * @author 流浪鱼
 */
public class I18NTest {
	private ResourceBundle rb;
	
	public I18NTest(ResourceBundle rb){
		this.rb = rb;
	}
	
	/**
	 * 打印信息
	 * @param msg
	 * @return
	 */
	public String say( String msg ) {
		return rb.getString( msg );
	}
	
	
	public static void main(String[] args) {
		ResourceBundle bundleZh = ResourceBundle.getBundle("Ralasafe_Web", Locale.CHINA);
		ResourceBundle bundleEn = ResourceBundle.getBundle("Ralasafe_Web", Locale.ENGLISH);
		
		I18NTest zh = new I18NTest(bundleZh);
		I18NTest en = new I18NTest(bundleEn);
		//System.out.println(en.say("Action"));
		System.out.println(zh.say("Action")+"     "+en.say("Action"));
		System.out.println(zh.say("Add_policy")+"     "+en.say("Add_policy"));
		System.out.println(zh.say("Bottom")+"     "+en.say("Bottom"));
		System.out.println(zh.say("Privilege_Constants")+"     "+en.say("Privilege_Constants"));
		System.out.println(zh.say("Ralasafe_Console")+"     "+en.say("Ralasafe_Console"));
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值