struts1只要國際化文件javascript
struts2能夠有多個國際化文件java
針對action作一個國際化文件 文件名:action名稱_zh_CN.propertiesajax
針對package作一個國際化文件 文件名:package_zh_CN.propertiessession
針對整個項目作一個國際化文件 文件名:i18n_zh_CN.propertiesapp
<s:textfield key="login_username">jsp
這裏不是label屬性了,而是用key屬性(label 屬性都是手動輸入的,key 是國際化)ide
在Struts2中,能夠經過ActionContext.getContext().setLocale(Locale arg) 設置用戶的默認語言。post
爲了簡化設置用戶默認語言環境,Struts2提供了一個名爲i18n的攔截器 (在defaultStack裏)。spa
i18n攔截器在執行Action方法前,自動查找請求中一個名爲request_locale的參數。若是該參數存在,攔截器就將其做爲參數,轉換成Locale對象,並將其設爲用戶默認的Locale(表明國家/語言環境)。對象
除此以外,i18n攔截器還會將上面生成的Locale對象保存在用戶Session的名爲WW_TRANS_I18N_LOCALE 的屬性中。一旦用戶Session中存在一個名爲WW_TRANS_I18N_LOCALE 的屬性,則該屬性指定的Locale將會做爲瀏覽者的默認Locale
在jsp頁面
<span class="fl pl15">
<s:if test='#session.WW_TRANS_I18N_LOCALE.toString() == \"en_US\"'>
<a href="#" onclick="changeLocale(1)"> 中文版 </a>
</s:if>
<s:else>
<a href="#" onclick="changeLocale(2)">English</a>
</s:else>
</span>
</script>
function changeLocale(tt)
{
<%-- alert("<%=request.getContextPath()%/i18n/changeLocale.action") --%>
$.post("<%=request.getContextPath()%>/i18n/changeLocale.action?key="+tt,{ajax : "true"},
function(data) {
window.location.reload();
});
}
</script>