您所在的位置: 首页 > 开发 > JAVA >

Java EE的国际化解决方案(1)

http://developer.51cto.com  2007-12-11 13:11  陈春  goCom  我要评论(0)
  • 摘要:本文介绍Java EE应用程序开发者如何实现不同国家或地区的用户应用界面上看到的文字内容是自己的语言,并且可以选择其他语言来显示。
  • 标签:Java EE  国际化  解决  方案  Java

当某个企业应用需要面对不同国家或地区的用户时,就必须考虑国际化问题。最终效果就是让不同国家的用户在界面上看到的文字内容是自己的语言,并且可以选择其他语言来显示。对于Java EE应用程序开发者来说,其主要工作包括提示信息国际化、编码国际化两个方面。

1、提示信息国际化

这部分工作主要就是把程序中字符串常量提取到统一的资源信息文件中。针对不同的程序代码,又有不同的处理方式。

1.1、 java code的处理

首先需提供一个公共国际化资源接口类,server启动时会根据具体环境加载不同的资源。假设国际化资源类为Message,接口为getString(String key),那么java code的形式变化如下:

原代码:

String strLabel = “业务逻辑”; 

新代码:

String strLabel = Message.getString(“BIZ_NAME”);
资源文件(message_zh_CN.properties)内容:
BIZ_NAME=业务逻辑

(1)jsp代码的处理

1)html部分

页面中表单的提示信息和表格标题等内容,一般都是直接写在html代码中。根据jsp规范,此时做国际化有两种途径。第一种是直接利用<%=%>调java表达式来输出国际化信息,第二种是通过自定义标签来输出。例如:

原代码:

<table> 
<tr>
<td>客户姓名
</td>
<td><input type=”text” name=”cust_name”>
</td>
</tr>
</table> 

第一种实现:

<table> 
<tr>
<td><%=WebPageMessage.getString(“CUST_NAME”)%>
</td>
<td><input type=”text” name=”cust_name”>
</td>
</tr>
</table>

第二种实现:

<table> 
<tr>
<td><i18n:message key=”CUST_NAME”/>
</td>
<td><input type=”text” name=”cust_name”>
</td>
</tr>
</table>  

资源文件(message_zh_CN.properties)内容:

CUST_NAME=客户姓名

2)jsp tag部分

有时候,jsp tag的属性值也是和具体语言相关的字符串,此时需要该属性支持java expression。如不支持,可修改<rtexprvalue>false</rtexprvalue>为<rtexprvalue>true</rtexprvalue>。例如:

原代码:

<dict:select businessType=”SEX” nullLabel=”未知”/>

新代码:

<dict:select businessType=”SEX” nullLabel=”<%=WebPageMessage.getString(“NULL”)%>”/>
资源文件(message_zh_CN.properties)内容:
NULL=未知 

(2)js、css、image部分

对于这三种元素,需要根据不同的语言环境加载不同的资源文件。我们可以在jsp对应的目录下建立一个resources目录,然后在下面按地区语言名建立文件夹本,分别保存前语言对应的js,css,image资源。为了实现此目的,可以把以前html的引用方式,改成jsp tag来引用原资源文件。例如:

Html引用:

<SCRIPT SRC="/resources/scripts/message.js" LANGUAGE="javascript"></SCRIPT> 
<LINK HREF="/resources /css/style.css" REL="stylesheet" TYPE="text/css"/>
<IMG SRC="/resources/images/title.gif" WIDTH="300" HEIGHT="120" BORDER="0" ALT="title">

Jsp tag引用:

<i18n:javascript src="/resources/scripts/message.js"/> 
<i18n:css href="/resources/css/style.css"/>
<i18n:image src="/resources/images/title.gif" width="300" height="120" border="0" alt="title"/>


共2页: 1 [2] 下一页
【内容导航】
2009年施耐德解决方案峰会
微软Forefront企业安全解决方案
Java实用开发全集
企业反病毒解决方案的选择
Java类的基础教程专题
 
 验证码: (点击刷新验证码)   匿名发表
  • 亮剑.NET. 图解C#开发实战

  • 作者:李新峰 付志涛 缪勇
  • 本书采用全新的图解思路,分3篇介绍使用微软C#语言开发实际应用程序的基本知识。第1篇包括10章,介绍了C#语言的基础知识,主要..
Copyright©2005-2009 51CTO.COM 版权所有