`
xiangkun
  • 浏览: 102418 次
  • 性别: Icon_minigender_1
  • 来自: 马尔代夫
社区版块
存档分类
最新评论

Struts国际化的实现

阅读更多
struts是一个MVC框架,据说struts可以轻松实现国际化;于是根据网上的资料,做了一个尝试,因为第一次做多语言程序,还是拐了很多弯路;但所幸,经过不断的尝试,终于成功的实现多语言版本的简单页面;

因为程序非常简单,所以在整个尝试过程中,全部使用手工编码,没有使用任何辅助工具;

1、 建立服务器

我使用Tomcat4作为测试环境,建立过程(略);

2、 下载struts

可以到http://jakarta.apache.org/struts/index.html下载,下载后解压,把其中的.war文件拷贝到Tomcat的webapps目录下,启动Tomcat,如果http://localhost:8080/struts-example/ 运行没有问题,说明环境建立成功;这些.war文件在Tomcat启动后会自动展开成文件,里面有源代码,可以作为源码研究;

3、 建立工程

在webapps目录下建立一个international文件夹,再在international目录下建立WEB-INF文件夹和WEB-INF/classes文件夹,这些都是一个JSP工程必须的;

4、 加了struts的类

在WEB-INF目录下建立一个lib子目录,把struts-example\WEB-INF\lib目录下将所有.jar文件拷贝到该目录下;这些文件是struts的控制类库和标签类库等;

commons-beanutils.jar 
commons-collections.jar 
commons-digester.jar 
commons-fileupload.jar 
commons-lang.jar 
commons-logging.jar 
commons-validator.jar 
jakarta-oro.jar 
struts.jar 



5、 加入struts标签定义文件

从struts-example\WEB-INF目录下,把.TLD文件拷贝到international的WEB-INF目录下,这些文件标签库的定义文件;

struts-bean.tld 
struts-html.tld 
struts-logic.tld 
struts-nested.tld 
struts-template.tld 
struts-tiles.tld 


6、 建立struts的config文件

建立struts的config文件的struts-config.xml,内容如下:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";> 
<struts-config> 
<message-resources parameter="resources.application"/> 
</struts-config> 



message-resources标签是指message资源的文件,就是我们存放我们的多种语言的提示信息的文件,resources.application表是classes目录下的resources目录用来存放资源文件,默认语言文件名为application.properties,中文为application_zh_CN.properties,其他语言类似;

7、 建立web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" 
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";> 
<web-app> 
<display-name>test international</display-name> 
<servlet> 
<servlet-name>action</servlet-name> 
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
<init-param> 
<param-name>config</param-name> 
<param-value>/WEB-INF/struts-config.xml</param-value> 
</init-param> 
<init-param> 
<param-name>debug</param-name> 
<param-value>2</param-value> 
</init-param> 
<init-param> 
<param-name>detail</param-name> 
<param-value>2</param-value> 
</init-param> 
<load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>action</servlet-name> 
<url-pattern>*.do</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
<welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
<taglib> 
<taglib-uri>/tags/struts-bean</taglib-uri> 
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location> 
</taglib> 
<taglib> 
<taglib-uri>/tags/struts-html</taglib-uri> 
<taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
</taglib> 
<taglib> 
<taglib-uri>/tags/struts-logic</taglib-uri> 
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location> 
</taglib> 
<taglib> 
<taglib-uri>/tags/struts-nested</taglib-uri> 
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location> 
</taglib> 
<taglib> 
<taglib-uri>/tags/struts-tiles</taglib-uri> 
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> 
</taglib> 
</web-app> 


上面的web.xml定义了struts的控制类、config文件和标签,因为比较简单,所以不做解释;

8、 建立资源文件

在classes目录下,建立一个resources目录,用来存放资源文件;

先建立默认的资源文件application.properties和英文(美国)的资源文件application_en_US.properties,内容为:

# -- international test -- 
test.title=international application test 
test.body=This is a international application test 

先建立这两个文件,中文的等下一步建立

9、建立jsp文件

在international目录下,建立index.jsp文件,内容为:

<%@ page contentType="text/html;charset=UTF-8" %> 
<%@ taglib uri="/tags/struts-bean" prefix="bean" %> 
<%@ taglib uri="/tags/struts-html" prefix="html" %> 
<%@ taglib uri="/tags/struts-logic" prefix="logic" %> 
<html:html locale="true"> 
<head> 
<title><bean:message key="test.title"/></title> 
<html:base/> 
</head> 
<body bgcolor="white"> 
<p><bean:message key="test.body"/></p> 
</body> 
</html:html> 


在这里表示使用浏览器默认的地区和语言;key的意思是取对应资源文件里的test.title项目的内容;

启动Tomcat,在浏览器里输入http://localhost:8080/international/,查看效果,如果浏览器标题显示international application test,页面里显示This is a international application test则说明你的程序成功了;下面只要增加资源文件,你就可以在多种语言的系统里看了;

10、 建立简体中文的资源文件

在resources目录下建立一个application_cn.properties,输入内容:

# -- international test --
test.title=国际化程序测试
test.body=这是一个国际化程序测试例子


因为java的国际化是通过unicode码来实现,所以要把代码转为unicode码;在Dos下,转到resources目录,执行:

native2ascii application_cn.properties application_zh_CN.properties


转换后的application_zh_CN.properties文件内容为:

# -- international test -- 
test.title=\u56fd\u9645\u5316\u7a0b\u5e8f\u6d4b\u8bd5 
test.body=\u8fd9\u662f\u4e00\u4e2a\u56fd\u9645\u5316\u7a0b\u5e8f\u6d4b\u8bd5\u4f8b\u5b50 


这就是上面的中文的unicode码;

重新启动Tomcat, 在浏览器里输入http://localhost:8080/international/,你看,标题和内容是不是变成中文了;

11、 建立繁体中文的资源文件

在resources目录下建立一个application_tw.properties,输入内容:

# -- international test -- 
test.title=???H化程式?y?? 
test.body=這是一個國際化程式測試例子 



因为java的国际化是通过unicode码来实现,所以要把代码转为unicode码;在Dos下,转到resources目录,执行:

native2ascii application_tw.properties application_zh_TW.properties 



转换后的application_zh_TW.properties文件内容为:

# -- international test -- 
test.title=\u570b\u969b\u5316\u7a0b\u5f0f\u6e2c\u8a66 
test.body=\u9019\u662f\u4e00\u500b\u570b\u969b\u5316\u7a0b\u5f0f\u6e2c\u8a66\u4f8b\u5b50 


这就是上面的繁体中文的unicode码;

12、 测试多语言

打开IE的“工具”->“Internet选项”菜单,“常规”选项卡,点击其中的“语言”按钮,添加“英语(美国)-[en-us]”语言,将其他的语言删除,重新启动IE后,输入http://localhost:8080/international/index.jsp,你会发现内容已经变成英文;

用同样的方法,可以测试简体中文和繁体中文。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/masse/articles/445864.aspx
分享到:
评论

相关推荐

    Struts2国际化的实现原理

    Struts2国际化的实现原理;简单的struts2国际化实现过程的讲解

    struts国际化(项目)

    在`strutsI18N`这个压缩包中,可能包含了实现Struts国际化的一个示例项目,包括了上述提到的资源文件、配置文件以及相关的Action类和JSP页面。通过分析这个项目,开发者可以更深入地理解Struts的国际化机制,并将其...

    Struts2 使用 Struts2 实现国际化

    在Struts2中实现国际化是一项关键功能,它允许应用程序为不同的语言和地区提供本地化的用户体验。下面将详细介绍如何使用Struts2来实现国际化,并探讨相关的源码和工具。 **一、国际化基础** 国际化(i18n)是软件...

    struts中文问题,struts国际化问题——终极解决方案

    通过上述步骤,Struts应用可以有效解决中文显示问题,实现国际化,提升用户体验。关键在于统一编码标准、合理使用资源文件以及正确处理客户端语言设置。实践证明,遵循这些原则,可以使Struts应用在多语言环境下表现...

    struts1.2 国际化

    本文将详细介绍 Struts 1.2 如何实现国际化,以及如何利用该框架创建国际化应用。 #### 二、本地化与国际化基础 ##### 1. 本地化 (Localization) 本地化是指将软件产品调整以适应某个特定市场(国家/地区或语言)...

    在struts2里实现国际化,完成登录页面的国际化(英文和中文)

    在Struts2中实现国际化,主要涉及以下几个关键步骤: 1. **创建资源文件**: 国际化的核心是资源文件,通常使用`.properties`格式,例如`login_en.properties`(英文)和`login_zh_CN.properties`(简体中文)。...

    Struts国际化源代码

    在这个"Struts2国际化源代码"资源中,我们可以深入理解如何在Struts2应用中实现国际化功能。 首先,国际化的核心在于资源文件,通常命名为`Messages.properties`,其中包含了应用程序中的所有可本地化的字符串。...

    struts2实现国际化

    在Struts2中,实现国际化主要通过以下步骤: 1. **创建资源文件**:资源文件通常以.properties为扩展名,如`messages_en.properties`(英语)和`messages_zh_CN.properties`(简体中文)。这些文件存储了应用中所有...

    struts2国际化源码以及eclipse国际化插件

    首先,让我们来探讨一下Struts2中的国际化实现。在Struts2中,国际化主要通过资源文件(通常为.properties格式)来完成。这些文件存储了应用中各个界面元素的本地化字符串。例如,你可以创建一个名为`messages_en....

    struts2国际化例子源码

    在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...

    struts1国际化小实例

    在Struts1中实现国际化(i18n)是提高应用程序可扩展性和适应不同语言环境的重要手段。下面将详细解释如何在Struts1中进行国际化实践,并结合给出的实例进行解析。 一、国际化(i18n)基础 国际化是指软件设计时...

    struts2 国际化使用

    在Struts2中实现国际化,可以帮助你的应用触达全球用户。 Struts2的国际化主要依赖于Java的ResourceBundle类,该类用于管理应用程序中的多语言资源。以下是如何在Struts2中进行国际化设置的详细步骤: 1. **创建...

    STRUTS2国际化的问题

    #### 二、配置文件中的国际化实现 1. **资源文件的配置**:通常,Struts2框架会使用.properties文件来存储各种语言版本的消息和提示信息。例如,创建一个名为`messages_zh_CN.properties`的文件来存储简体中文版的...

    Struts数据源连接和国际化

    #### 四、实现Struts的国际化 1. **创建资源文件**:Struts使用属性文件来存储文本消息和其他本地化信息。每个语言版本都有自己的资源文件。 - 中文版:`ApplicationResources_zh_CN.properties` - 英文版:`...

    struts1.x 最简洁国际化 源代码

    以上就是关于Struts1.x国际化的基本概念和实现方式。通过理解这些知识点,开发者能够构建出对全球用户友好的应用程序。在实际项目中,应根据具体需求调整和扩展这些基础策略,以满足更复杂的需求。

    Struts国际化完整dome

    "Struts国际化完整dome"是一个示例项目,它演示了如何在Struts应用中实现国际化功能。 1. **国际化基础** 国际化是软件开发中的一个关键概念,目的是使软件能够适应不同地区的语言和文化习惯。在Java中,主要通过`...

    struts2国际化 标签 页面 处理类

    在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们需要声明全局的国际化资源文件。通过设置常量`struts.custom.i18n.resources`的值为`message`,我们...

    struts2国际化测试

    在“struts2国际化测试”这个主题中,我们将探讨如何在Struts2框架下实现应用程序的国际化功能。 首先,国际化(i18n,i代表第9个字母n,18是n到i的字母数,表示国际化)是使软件能够适应不同语言和文化背景的重要...

    Struts1 和 Struts 2 国际化全局资源

    在Struts1中,实现国际化主要依赖于`ResourceBundle`类,它用于存储特定语言环境的字符串。以下是如何在Struts1中设置和使用全局资源: 1. **创建资源文件**:首先,你需要为每种语言创建一个`.properties`文件,如...

Global site tag (gtag.js) - Google Analytics