struts2_i18n

1.資源文件的準備,格式如下:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName是資源文件的基本名,可以自定義,但language和country必須是java支持的語言和國家
如:
中國大陸:baseName_zh_CN.properties
美國:baseName_en_US.properties


對於中文的屬性文件,如果編寫後開發工具不能幫我們進行轉碼,
我們可以使用jdk提供的native2ascii命令把文件轉換爲unicode編碼的
文件,命令使用如下:native2ascii 源文件.properties 目標文件.properties


2當準備好資源文件後,我們可以在struts.xml中將資源文件配置爲全局資源文件
具體配置如下:
<constant name="struts.custom.i18n.resources" value="softeem">
softeem指的是資源文件的基本名


3.在頁面或action中訪問國際化信息:
在jsp頁面中使用<s:text name="welcome"/>標籤中輸出國際化信息
如<s:text name="welcome"/>name爲資源文件中的key
在action中可以繼承ActionSupport,使用getText()方法獲得國際化信息,該方法中的參數用於指定資源文件中的key
在表單標籤中,通過key屬性指定資源文件中的key如:
<s:textfield name="realname" key="user"/>
頁面中取得國際化後的字符串:<s:property value="getText('username')"/>




*國際化語言動態切換request_locale=en_US/zh_CN
<a href="language?request_locale=en_US">EN</a>
<a href="language?request_locale=zh_CN">CN</a>


i18n的原理:根據參數不同的值,根據相同的key在不同的文件中
   取到不同的value


properties文件的級別
   *action級別:配置文件的前綴名必須和類名保持一致,只在訪問
    這一個action的時候加載
   *package級別:配置文件的前綴名必須是package,在訪問當前
    包下面的action都會加載
   *application:配置文件的前綴名沒有要求,需要在struts.xml
    中進行配置,在服務器啓動時加載
總結
使用國際化步驟:
①創建全局的properties資源文件(注意命名)
②在struts.xml中加載properties資源文件
③在頁面使用<s:text name="key"/>取到對應的資源文件中的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章