---恢復內容開始---app
寫兩個properties文件,命名時要注意後面的中文的則以zh_CN結尾,英文的以en_US結尾。eclipse
在測試驅動類中寫jsp
ResourceBundle res = ResourceBundle.getBundle("app", Locale.CHINA);測試
System.out.println(res.getString("welcome.msg"));spa
welcome.msg爲properties文件中的信息。插件
這裏Locale用的是國家名code
可是在ch_ZN裏面寫中文仍是不行的,用properties editor打開便可,它會自動將輸入的中文轉爲unicode字符。xml
properties插件:解壓,feafures pligin覆蓋到Myeclipse中的eclipse目錄裏blog
---恢復內容結束---ip
Action級別I18N問題
寫好資源文件後,在jsp頁面能夠用s 標籤取出如:<s:property value="getText('login.username')"/>
properties裏面調用方法,只能針對action來調。LoginAction裏面雖然沒有getText方法,可是它的父類ActionSupport裏面有getText方法。
包級別的I18N,前綴名只能叫package,如package_zh_CN.properties。只能它所在的包才能用
action級別的前綴名只能叫XXAction,只有它對應的action才能用。
全局級別的I18N前綴名不收限制,整個項目均可以用,爲了找到它,要在struts.xml裏面配置它的前綴名。怎麼配參考defualt.properties
如:<constant name="struts.custom.i18n.resources" value="bbs2"/>
處理資源文件中的參數
{0}{1}{2}分表明一個佔位符,裏面的數字表示它們的參數位置,從0開始 如welcome.msg = welcome:{0}! 在jsp頁面能夠往裏面傳參數
<s:text name="welcome.msg">
<s:param value="username"></s:param>
</s:text>
動態語言的切換
只要在地址後面加上?request_locale=en_US就能夠切換爲英文,加?request_locale=zh_CN就能夠切換爲中文
咱們能夠寫個LangAction
1 package com.lch.bbs2009.action; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class LangAction extends ActionSupport { 6 public String execute(){ 7 return "success"; 8 } 9 }
在struts.xml中配置
<action name="lang" class="com.lch.bbs2009.action.LangAction">
<result name="success">/admin/Login-input.jsp</result>
</action>
在jsp頁面中添加連接
1 <a href="admin/lang?request_locale=en_US">en</a> 2 <a href="admin/lang?request_locale=zh_CN">cn</a>