当某个企业应用需要面对不同国家或地区的用户时,就必须考虑国际化问题。最终效果就是让不同国家的用户在界面上看到的文字内容是自己的语言,并且可以选择其他语言来显示。对于Java EE应用程序开发者来说,其主要工作包括提示信息国际化、编码国际化两个方面。QNT北方站长站
1、提示信息国际化QNT北方站长站
这部分工作主要就是把程序中字符串常量提取到统一的资源信息文件中。针对不同的程序代码,又有不同的处理方式。QNT北方站长站
1.1、 java code的处理QNT北方站长站
首先需提供一个公共国际化资源接口类,server启动时会根据具体环境加载不同的资源。假设国际化资源类为Message,接口为getString(String key),那么java code的形式变化如下:QNT北方站长站
原代码:QNT北方站长站
String strLabel = “业务逻辑”; |
QNT北方站长站新代码:QNT北方站长站
String strLabel = Message.getString(“BIZ_NAME”);QNT北方站长站 资源文件(message_zh_CN.properties)内容:QNT北方站长站 BIZ_NAME=业务逻辑 |
QNT北方站长站(1)jsp代码的处理QNT北方站长站
1)html部分QNT北方站长站
页面中表单的提示信息和表格标题等内容,一般都是直接写在html代码中。根据jsp规范,此时做国际化有两种途径。第一种是直接利用<%=%>调java表达式来输出国际化信息,第二种是通过自定义标签来输出。例如:QNT北方站长站
原代码:QNT北方站长站
<table> QNT北方站长站 <tr> QNT北方站长站 <td>客户姓名 QNT北方站长站 </td> QNT北方站长站 <td><input type=”text” name=”cust_name”> QNT北方站长站 </td> QNT北方站长站 </tr> QNT北方站长站 </table> |
QNT北方站长站第一种实现:QNT北方站长站
<table> QNT北方站长站 <tr> QNT北方站长站 <td><%=WebPageMessage.getString(“CUST_NAME”)%> QNT北方站长站 </td> QNT北方站长站 <td><input type=”text” name=”cust_name”> QNT北方站长站 </td> QNT北方站长站 </tr> QNT北方站长站 </table> |
QNT北方站长站第二种实现:QNT北方站长站
<table> QNT北方站长站 <tr> QNT北方站长站 <td><i18n:message key=”CUST_NAME”/> QNT北方站长站 </td> QNT北方站长站 <td><input type=”text” name=”cust_name”> QNT北方站长站 </td> QNT北方站长站 </tr> QNT北方站长站 </table> |
QNT北方站长站资源文件(message_zh_CN.properties)内容:QNT北方站长站
CUST_NAME=客户姓名 QNT北方站长站
2)jsp tag部分QNT北方站长站
有时候,jsp tag的属性值也是和具体语言相关的字符串,此时需要该属性支持java expression。如不支持,可修改<rtexprvalue>false</rtexprvalue>为<rtexprvalue>true</rtexprvalue>。例如:QNT北方站长站
原代码:QNT北方站长站
<dict:select businessType=”SEX” nullLabel=”未知”/> |
QNT北方站长站新代码:QNT北方站长站
<dict:select businessType=”SEX” nullLabel=”<%=WebPageMessage.getString(“NULL”)%>”/>QNT北方站长站 资源文件(message_zh_CN.properties)内容:QNT北方站长站 NULL=未知 |
QNT北方站长站(2)js、css、image部分QNT北方站长站
对于这三种元素,需要根据不同的语言环境加载不同的资源文件。我们可以在jsp对应的目录下建立一个resources目录,然后在下面按地区语言名建立文件夹本,分别保存前语言对应的js,css,image资源。为了实现此目的,可以把以前html的引用方式,改成jsp tag来引用原资源文件。例如:QNT北方站长站
Html引用:QNT北方站长站
<SCRIPT SRC="/resources/scripts/message.js" LANGUAGE="javascript"></SCRIPT> QNT北方站长站 <LINK HREF="/resources /css/style.css" REL="stylesheet" TYPE="text/css"/> QNT北方站长站 <IMG SRC="/resources/images/title.gif" WIDTH="300" HEIGHT="120" BORDER="0" ALT="title"> |
QNT北方站长站Jsp tag引用:QNT北方站长站
<i18n:javascript src="/resources/scripts/message.js"/> QNT北方站长站 <i18n:css href="/resources/css/style.css"/> QNT北方站长站 <i18n:image src="/resources/images/title.gif" width="300" height="120" border="0" alt="title"/> |
QNT北方站长站QNT北方站长站
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面