Struts国际化

 

“国际化”是指一个应用程序在运行时能够根据客户端请求所来自的国家/地区,语言的不同而显示不同的用户界面。     
                
常用I18N这个记事作为”国际化“的简称,其来源是英文单词Internationalization的首字母I和N及它们之间的字符数18。     
Struts 框架通 使用<bean:messgae> 标记 ,以及使用java.util数据包中定 的Locale和ResourceBundle 来 支持国 化。      
java.text.MessageFormat 的技 可以支持消息的格式。           
                
资源文件和资源包              

要用Struts实现国际化和本地化,首先要定义资源文件的名称,这个文件会包含用默认语言编写的会在程序中出现的所有消息。

这些消息以”键-值“对的形式存储,如下:

lable.userID = USERID              
一个 用程序 行国 ,所要用的各 言版本的” 标签 “信息 应该 存放在不同的属性文件中,       
一个 这样 的文件 对应 言版本。所有属性文件合在一起称 为资 源包(Resource Bundle)。       
属性文件的命名格式可分为以下两种:            
a)文件名前缀.properties              
b)文件名前缀_语言种类.properties             
文件名后 是properties,前 可自由 写,其中 字段必 是有效的ISO 言代        
                
下面结合一个实例来进行说明              

首先来编写一个默认的英文版资源文件 ApplicationResources.properties

 

#login Page  
lable.userID = USERID
lable.password = PASSWORD
lable.loginPage = Login Page
lable.btnLogin = Login  

lable.btnReset = Reset

然后编写一个日文版本的ApplicationResources_ja.properties

 

#login page  
lable.userID = ユーザーID
lable.password = パスワード
lable.loginPage = ユーザ登録画面
lable.btnLogin = 登 録  

lable.btnReset = クリア

为了防止出现乱码使用native2ascii将其转换为Unicode,如下所示:

 

#login page      
lable.userID = /u30e6/u30fc/u30b6/u30fcID   
lable.password = /u30d1/u30b9/u30ef/u30fc/u30c9   
lable.loginPage = /u30e6/u30fc/u30b6/u767b/u9332/u753b/u9762
lable.btnLogin = /u767b /u9332     

lable.btnReset = /u30af/u30ea/u30a2

 

然后我们在struts的配置文件中设置资源文件即可!在设置 的时候我们只需要设置ApplicationResources即可,

而ApplicationResources_ja.properties则不必,因为Struts在运行时会自动获取同名不同语言种类的资源文件!

 

<!-- 资源文件 -->




<message-resources parameter="resource.ApplicationResources"/>

 

上面这些工作做完后我们还需要写一个Action来激发它,这个类大致如下,当然个人可以根据业务需要来编写自己的Action。

最后回到页面端,在自己的welcome.jsp页面定义日文和英文语言标识符的两个bean用来向ChangeLanguageAction 传递所需要的语言种别。

我的欢迎页面如下,当我点击Japanese链接时就会切换到日文语言界面。

switchlanguage

 

这样当来自日文操作系 的客 户浏览时 就会自 动显 示 日文,





而来其它的则统 一使用默 源文件ApplicationResources.properties英文。




程序究竟中如何知道的呢,其它 是通 IE的 置来 取!我IE属性---常 --- 言   中其 就已 经设 定,如下:

 

IE

另外如果在配置文件中有多个资源包要配置,用KEY属性来区分,如下:

其中,不带key属性的就是默认的资源包。

资源包应该放在WEB应用程序的WEB-INF/classes目录下,当系统初始化时,会装载这些资源文件。

如果修改了资源文件,则需要重新启动应用服务器。

 

 

资源包的访问:











资源包有了后我们就可以对其进行访问了,访问方主要有二种:一种是在JSP页面访问,通过<bean:message>标记来访问,

另一种是在程序中访问!

在JSP中访问如下:











<bean:message key="lable.welcomePage" />













在程序中访问资 源包主要是在Action 中用到。Action提供了getResources()方法,





可以 得 org.apache.struts.MessageResources 的一个 例。MessageResources代表 源包的一个



它是一个抽 象 ,因此需要由Action的基 中的getResources()方法来返回它的一个 例。以下是程序示例:






   
         
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值