java与structs的国际化
时间:2010-10-01 来源:consy
JAVA的国际化
package com.kzq.i18n;
import java.util.Locale;
import java.util.ResourceBundle;
public class I18nSample {
/**
* @param args
*/
public static void main(String[] args) {
//操作系统中的默认本地化信息
Locale defaultLocale = Locale.getDefault();
System.out.println("default country:" + defaultLocale.getCountry());
System.out.println("default language:" + defaultLocale.getLanguage());
//自定义本地化信息
Locale currentLocale = new Locale("zh", "CN");
//定位到国际化文件,国际化资源文件名由basename+Locale组成:如MessagesBundle_zh_CN.properties,basename为任意合法名字
ResourceBundle rb = ResourceBundle.getBundle("resource.MessagesBundle",currentLocale);
//读取文件中的值
System.out.println(rb.getString("k1"));
System.out.println(rb.getString("k2"));
}
}
Struts国际化标签
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<bean:message key="" />
JSP动态改变本地化信息
String lang = request.getParameter("lang");
Locale currentLocale = Locale.getDefault();
if("zh".equals(lang)){
currentLocale = new Locale("zh", "CN")
}else if("en".equals(lang)){
currentLocale = new Locale("en", "US");
}
request.getSession().setAttribute(Globals.LOCALE.KEY, currentLocale);
//或者用调用下面的方法
//this.setLocale(request, currentLocale);