日期:2014-05-17 浏览次数:20906 次
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<script type="text/javascript">
function langSelecter_onChanged()
{
document.getElementById("langForm").submit();
}
</script>
<!-- 将用户Session中的“WW_TRANS_I18N_LOCALE”属性值设置成SESSION_LOCALE。 -->
<s:set name="SESSION_LOCALE" value="#session['WW_TRANS_I18N_LOCALE']"/>
<!-- 使用lee.Locales创建locales实例 -->
<s:bean id="locales" name="lee.Locales">
<!-- 为locales实例这种current参数值 -->
<s:param name="current"
value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE"/>
</s:bean>
<!-- 让用户选择语言的表单 -->
<form action="<s:url/>" id="langForm"
style="background-color:#bbbbbb; padding-top: 4px; padding-bottom: 4px;">
<!-- 输出国际化提示 -->
<s:text name="languag"/>
<!-- 使用s:select标签迭代locales实例的locales Map属性 -->
<s:select label="Language" list="#locales.locales" listKey="value" listValue="key"
value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE"
name="request_locale" id="langSelecter"
onchange="langSelecter_onChanged()" theme="simple"/>
</form>
package lee;
public class Locales
{
//因为本实例也需要实现国际化,所以使用current作为用户当前的Locale
private Locale current;
//取得用户当前Locale的setter方法
public void setCurrent(Locale cur)
{
this.current = cur;
}
//取得本系统所支持的全部语言
public Map<String, Locale> getLocales()
{
//将当前系统支持的全部语言保持在Map对象中
Map<String, Locale> locales = new Hashtable<String, Locale>();
ResourceBundle bundle = ResourceBundle.getBundle("messageResource" , current);
//添加当前系统支持的语言,key是系统支持语言的显示名字,value是系统支持语言的Locale实例
locales.put(bundle.getString("usen"), Locale.US);
locales.put(bundle.getString("zhcn"), Locale.CHINA);
return locales;
}
}