struts之重点与亮点---国际化


1. 国际化与本地化

 

 

国际化 (Internationalization: I18N): 是程序在不做任何修改的情况下,就可以再不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示字符。
本地化( Localization : L10N : 在开发国际化的程序时,创建某种语言相关的文本和格式资源的过程叫做本地化。

 

 

2. Java 中国际化的思路

 

 

将程序中的提示信息,错误信息等放在资源文件中,为不同的国家 / 语言编写对应的资源文件。资源文件由很多 key-value 组成, key 保存不变, value 随着国家 / 语言的不同而不同。这些资源文件属于同一资源系统,使用  
共同的基名 (Base Name) 。通过在基名后面添加 ISO-639 标准的语言代码、 ISO-3166 标准的国家和地区代码来进行区分。

 

例如: 规定基名为 abc , 可以定义 abc_zh_CN.properties 大陆中文 ; abc_en_US.properties 美国,英文语言 ......

 

 

3. 使用 struts 实现国际化

  • 1 struts.xml 中制定资源文件的基名及存储路径

<constant name="struts.custom.i18n.resources" value="message"></constant>
<constant name="struts.i18n.encoding" value="utf-8" ></constant>

 

  • 2 )创建资源文件

根据需求创建对应的资源文件,这里假设显示中文和英文两种语言。  
src 目录下创建两个资源文件,名称为 message_zh_CN.properties message_en.properties

 

  • 3) 根据需求在资源中添加对应的内容

示例: message_en.properties:
userName=userName
userPwd=userPassword
submit=submit

message_zh_CN.properties:
userName=\u7528\u6237\u540D
userPwd=\u5BC6\u7801
submit=\u63D0\u4EA4

 

  • 4) JSP 页面实现国际化显示

<form action="login.action">
<s:text name="userName"></s:text> : <s:textfield name="name" ></s:textfield> <br/>
<s:text name="userPwd"></s:text>: <s:password name="pwd" ></s:password> <br/>
<s:text name="submit"></s:text> : <input type="submit" />
</form>

 

4. 测试:

 

可以通过浏览器选择 工具 -- Internet -- 常规 -- 语言 单击 添加 按钮,选择美国选项,并通过 上移 按钮将其移到语言框的最上面,单击 确定 按钮。

 

 

5. 验证信息的国际化显示:

 

通过不同的资源文件显示不同的错误信息  

 

  • 1 资源文件

message_en.properties:
name.null = Name cannot be null
......
message_zh_HK.properties:
name.null =
用户名不能为空

 

  • 2) 通过 strutes 验证框架

<message key="name.null" />

 

  • 3) 通过 Action 文件

this.addFieldError("user.name",getText("name.null"));

 

  • 6. 资源文件的范围

 

src 目录下添加的资源文件对全局资源文件,所有包的所有 Action 都可以访问。

 

 

struts2 提供了包范围资源文件和 Action 范围的资源文件。

 

 

1 包资源文件: 在对应保险出添加 package_languate_country.properties 资源文件。 package 为固定写法, 只有处在该包以及子包下的 Action 才可以访问该文件。
org.zm 包下定义资源文件 package_en.properties package_zh_HK.properties , org.zm 以及其他子包中的 Action 可以访问这些资源文件。

 

 

2 Action 范围的资源文件: Action 类的所在 包内添加资源文件,命名规则 ActionClassName_language_country.properties, 其中 ActionClassName Action 的名称

 

 

7. 资源文件的查找顺序


 

当前报下的 Action > package 的资源文件 > ... > 顶级包 > 从常量 "struts.custom.i18n.resources" 指定的全局资源文件中查找

全部评论

相关推荐

07-02 13:50
闽江学院 Java
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务