struts國際化

 

struts2的國際化分三種情況:前臺頁面的國際化,Action類中的國際化,配置文件的國際化。

首先指定全局的國際化資源文件:

在配置文件struts.xml中引入

<constant name="struts.custom.i18n.resources" value="message"></constant>(注意位置)

在struts.properties文件中指定如下一行:

struts.custom.i18n.resources=message

 

指定的國家化資源文件即爲

xxx_語言_國家.properties

 

message_zh_CN.properties(簡體中文資源文件)

message_en_US.properties(美國英語資源文件)

 

 

(1).JSP頁面上的國際化(使用struts2的<s:text .../>):

 

<s:i18n name="message">
  <s:text name="hello">
    <s:param>${username}</s:param>
  </s:text>
</s:i18n>

 

message_en_US.properties文件配置:

hello=hello world,{0}

message_zh_CN.properties文件配置:

hello=你好,{0}

 

(2)表單元素的Label國際化:

未國際化:

<s:textfield name="username" label="username"></s:textfield>

<s:textfield name="password" label="password"></s:textfield>

 

國際化後:

<s:textfield name="username" key="uname"></s:textfield>

<s:textfield name="password" key="pword"></s:textfield>

 

message_en_US.properties文件,配置:

uname=username

pword=password

 

message_zh_CN.properties文件,配置:

uname=用戶名

pword=密碼

 

 

(3).Action中的國際化:

未國際化:

this.addFieldError("username", "the username error!");

this.addFieldError("password", "the password error!");

 

國際化後:

this.addFieldError("username", "username.error");

this.addFieldError("password", "password.error");

 

message_en_US.properties文件配置:

username.error = the username error !

password.error = the password error!

message_zh_CN.properties文件配置:

username.error=用戶名錯誤!

username.error=密碼錯誤!

 

(4).配置文件中的國際化:

以輸入校驗的LoginAction-validation.xml爲例:

未國際化:

<field name="username">
     <field-validator type="requiredstring">
       <param name="trim">true</param>
       <message>username should not be empty!</message>
     </field-validator>
  
     <field-validator type="stringlength">
       <param name="minLength">6</param>
       <param name="maxLength">12</param>
       <message>username should be between ${minLength} and ${maxLength}!</message>
     </field-validator>
   </field>

 

國際化後:

<field name="username">
     <field-validator type="requiredstring">
       <param name="trim">true</param>
       <message key="username.empty !"></message>
     </field-validator>
  
     <field-validator type="stringlength">
       <param name="minLength">6</param>
       <param name="maxLength">12</param>
       <message key="username.size"></message>
     </field-validator>
   </field>
   
 

message_en_US.properties文件配置:

username.empty = the username should not be empty !

username.size = the size of username shoule be between 6 and 12 !

password.empty = the password should not be empty !

password.size = the size of password shoule be between 6 and 12 !

 

message_zh_CN.properties文件配置:

username.empty =用戶名不能爲空 !

username.size = 用戶名長度在6到12 !

password.empty =密碼不能爲空 !

password.size = 密碼長度在6到12 !

注:message_zh_CN.properties這個國際化資源文件不允許包含非西歐字符

Java提供了一個工具來處理該文件中的中文:native2ascii,這個工具可以在%JAVA_HOME%/bin路勁下找到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章