`
Luob.
  • 浏览: 1573677 次
  • 来自: 上海
社区版块
存档分类
最新评论

Java 国际化(一)

    博客分类:
  • Java
阅读更多
1.Java对国际化的支持主要用3个类另外完成
java.util.Locale 对应一个特定的区域和语言环境
  Locale类主要用来构建本地化应用,该类的主要包含,对地理区域的区域性特征的封装,Local提供了一些常量,可以使用这些常量为通常使用的语言环境创建Locale对象。例如,为中国应用环境创建一个Locale对象
  Locale.CN.

java.util.ResourceBundle用户加载资源包
Locale locale=new Locale("zn","CN","WIN");
ResourceBundle myResource=ResourceBundle.getBundle("Resources",locale);

java.test.MessageFormat 用于见消息格式化。
如果资源文件中包含动态内容,那么动态内容就要需要使用占位符表示,而加载资源文件是,必须使用MessageFormat类,该类中共有一个静态方法format(),调用方式入校:
MessageFormat.format(String pattern,Object values...);
其中 参数pattern是包含占位符的字符串,后面的多个参数将依次填充字符串中的占位符。
实例:
MessageFormat_zh_CN.properties
MessageFormat_en_US.properties
MessageFormatThree.java


1.使用类实现 国际化
import java.util.Locale;
import java.util.ResourceBundle;


public class Secondi18n {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Locale locale=null;
		if(args.length==2){
			locale=new Locale(args[0],args[1]);
		}
		else{
			locale=Locale.getDefault();
		}
		//资源类 的命名 用Resources开头
		ResourceBundle bundle=ResourceBundle.getBundle("Resources", locale);
		System.out.println(bundle.getString("userName"));
		System.out.println(bundle.getString("userPassword"));
		System.out.println(bundle.getString("userAge"));

	}

}


注意命名
import java.util.ListResourceBundle;
public class Resources_en_US extends ListResourceBundle {

	static final Object[][] contents=new String[][]{
		{"userName","Name"},
		{"userPassword","Password"},
		{"userAge","age"}};
	
	@Override
	protected Object[][] getContents() {
		// TODO Auto-generated method stub
		return contents;
	}

}

import java.util.ListResourceBundle;
public class Resources_zh_CN extends ListResourceBundle {

	static final Object[][] contents=new String[][]{
		{"userName","姓名"},
		{"userPassword","密码"},
		{"userAge","年龄"}};
	
	@Override
	protected Object[][] getContents() {
		// TODO Auto-generated method stub
		return contents;
	}

}


2.使用资源文件 带占位符
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;


public class MessageFormatThree {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Locale locale=null;
		if(args.length==2){
			locale=new Locale(args[0],args[1]);
		}
		else{
			locale=Locale.getDefault();
		} 
                 //资源属性文件 用 MessageFormat 开头
		ResourceBundle bundle=ResourceBundle.getBundle("MessageFormat", locale);
		String userName=bundle.getString("userName2");
		System.out.println(MessageFormat.format(userName, "xue",new Date()));
	}

}



注意命名
MessageFormat_en_US.properties
userName=Name
userPassword=Password
userName2={0},Today is {1}

MessageFormat_zh_CN.properties
userName=姓名
userPassword=密码
userName2={0},今天{1}


3.Loacle 中显示java支持的 地区和语言
import java.util.Locale;

public class locale {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Locale[] list = Locale.getAvailableLocales();
		System.out.println("中文地区————地区简写——————语言中文——————语言简写");
		for (int i = 0; i < list.length; i++) {
			System.out.println(list[i].getDisplayCountry()+"————"+list[i].getCountry()+"——————"+list[i].getDisplayLanguage()+"——————"+list[i].getLanguage());
		}
	}

}

1
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics