1.资源文件

 

中文文件messageResource.properties

 


Java代码   



 
   
 
loginPage=登录页面  
username=用户名  
password=password  
 
 
英文文件messageResource_en_US.properties

 


Java代码   



 
   
 
loginPage=Login Page  
username=UserName  
password=Password


 

2.编码资源文件

 

dos下进入中文文件messageResource.properties所在的目录如E盘根目录下

 


Java代码   



 
   
 
cd/d e:/  
native2ascii -encoding gb2312 messageResource.properties messageResource_zh_CN.porperties


 

最终在E盘根目录下生成已编码的messageResource_zh_CN.properties文件,内容如下:

 


Java代码   



 
   
 
loginPage=\u767b\u5f55\u9875\u9762  
errorPage=\u9519\u8bef\u9875\u9762  
succpage=\u6b22\u8fce\u9875\u9762  
user=\u7528\u6237\u540d  
pass=\u7528\u6237\u5bc6\u7801


 

将这个文件和英文文件放到src目录下,也即全局资源文件。

 

其中:

全局资源文件:将资源文件放在src目录下,全局均可使用,命名为:baseName_语言名_国家名.properties

包资源文件:将资源文件放在某个包下,只允许这个包使用,命名为:包名_语言名_国家名.properties

类资源文件:将资源文件放到与类同一目录下,只允许该类使用,命名为:类名_语言名_国家名.properties

 

优先级:类资源文件 > 包资源文件 > 全局资源文件

 

3.配置struts

 

struts.xml里配置如下:

 


Xml代码   



 
   
 
<constant name="struts.custom.i18n.resources" value="messageResouce" />


 

4.显示

 

jsp中显示如下:

 


Xml代码   



 
   
 
<s:i18n name="messageResource"><s:text name="loginPage"/></s:i18n>
 
  or

 


Xml代码   



 
   
 
<s:i18n name="messageResource"><s:property value="%{getText('loginPage')}"/></s:i18n>
 
 
or
 
 
<s:text name="loginPage"/>

 

 

5.带有占位符的国际化信息

 

资源文件:loginPage= loginPage {0}

 

jsp显示如下:

Xml代码    
   

 
   
 
<s:i18n name="messageResource">
<s:text name="loginPage">
<s:param>test</s:param>
</s:text>
</s:i18n>


 

 代替占位符,不需要在jsp显示时输入参数的方法:

 


Xml代码   



 
   
 
loginPage=${username},欢迎你


 

在上面的消息资源中,通过使用表达式,可以从ValueStack中取出该username属性值,自动填充到该消息资源中。