`

struts2的国际化[三种语言的动态切换]

阅读更多

一. 创建三个资源文件:

 

crms_zh_CN.properties

crms_en_US.properties

crms_zh_TW.properties

二. struts2的配置文件

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
 "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
 <!-- 拦截struts的扩展名  -->
 <constant name="struts.action.extension" value="action,"/>
 <!-- 开发模式  -->
 <constant name="struts.devModel" value="true"/>
 <!-- 国际化  -->
 <constant name="struts.custom.i18n.resources" value="crms"/>
  <package name="web" namespace="/web" extends="struts-default">
  <default-action-ref name="index" />

  <action name="index">
   <result>/login.jsp</result>
  </action>
  <action name="login" class="userinfoAction">
   <result name="success">
    /WEB-INF/jsp/index.jsp
   </result>
   <result name="error">
    /login.jsp
   </result>
   </action>
  <!--国际化-->
  <action name="i18n" class="userinfoAction">
   <result name="success">
    /WEB-INF/jsp/header.jsp
   </result>
  </action>  
 </package>
</struts>

 三.jsp文件[语言切换的超链接]

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
 <head>
  <title>header</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
<!-- JQuery-->

<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
    var lang=$("#currLanguage").val();
  if (lang=="en_US") {
   $("#en_US").hide();
   $("#title").removeClass("title_cn");
   $("#title").addClass("title_en");
  }else if(lang=="zh_TW"){
   $("#zh_TW").hide();
  }else if(lang=="zh_CN"){
   $("#zh_CN").hide();
  }
  //单击选择语言时,隐藏先择的语言的超链接/刷新相应的页面
  
  $("#language div").click(function(){
   //DIV的单再比<a/> 超链接优先执行,用此语句来掉换一下优先的顺序
   window.location.href="web/i18n!i18n?request_locale="+this.id;
   //单击时,先显示隐藏的DIV
   $('div:hidden').show();
   //再把单击的DIV隐藏掉
   $(this).hide();


    //刷新页面
   window.parent.header.location.reload(); 
   window.parent.left.location.reload(); 
   window.parent.body.location.reload();
   window.parent.footer.location.reload();

   //根据语言来改变样式
   if (lang=="en_US") {
    $("#en_US").hide();
    }else if(lang=="zh_TW"){
    $("#zh_TW").hide();
    }else if(lang=="zh_CN"){
    $("#zh_CN").hide();
     }
  });
 });
 </script>
</head>
<body >

  <div id="title" class="title_cn"><s:property value="getText('web_header_title')"/></div>
   <div id="loginInfo">
    <div id="language">
     <div id="changeLanguage"><s:property value="getText('web_header_language')"/>:</div>
     <div id="en_US" ><a href="web/i18n!i18n?request_locale=en_US"><s:property value="getText('web_header_en')"/></a></div>
     <div id="zh_TW" ><a href="web/i18n!i18n?request_locale=zh_TW"><s:property value="getText('web_header_gbk')"/></a></div>
     <div id="zh_CN" ><a href="web/i18n!i18n?request_locale=zh_CN"><s:property value="getText('web_header_gb2312')"/></a></div>
     <input type="hidden" id="currLanguage" value='<s:property value="locale"/>'/>
    </div>
    </div>

 

<!--以下是测试代码,,以下两种标签均可以显示国际化内容-->

<div id="title" class="title_cn"><s:property value="getText('web_header_title')"/></div>

<div id="title_1"><s:text name="web_left_service"/> </div>

 </body>
</html>

 

四.显示效果

 在页面上只显示两种语言的超链接和当前使用的一种语言,当用户单击来切换语言时,页的将显示为该语言,并隐藏该语的超链接.

 

分享到:
评论

相关推荐

    struts2国际化语言切换

    以下是实现Struts2国际化语言切换的详细步骤: 1. **创建资源包**: 首先,你需要为每种支持的语言创建一个资源包。资源包通常是以.properties为后缀的文本文件,例如`message_zh_CN.properties`(中文)和`...

    Struts2 国际化 多语言切换

    下面我们将深入探讨如何在Struts2中实现国际化和多语言切换。 **一、国际化(i18n)基础** 国际化是指软件设计时考虑到不同地区的文化差异,使得软件可以通过简单的配置和扩展就能适应各种语言环境。在Java中,我们...

    Struts2国际化(可选择语言)

    总的来说,这个例子展示了如何在Struts2框架下实现国际化功能,包括创建资源文件、在Action中获取本地化信息、在JSP中展示以及提供语言切换的界面。通过这样的实现,开发者可以轻松地为不同地区的用户提供定制化的...

    Struts2国际化——自动切换语言

    Struts2的国际化功能允许应用程序根据用户的选择或系统设置显示多语言内容。在Struts2框架中,实现国际化主要是通过资源配置文件和特定的标签来完成的。以下将详细阐述实现Struts2国际化自动切换语言的过程。 1. **...

    struts 2 国际化 自动语言切换

    Struts2提供了强大的国际化支持,使得开发者能够轻松地实现应用的语言切换功能。下面将详细解释如何在Struts2中进行国际化设置,并实现自动语言切换。 首先,我们需要理解国际化的基本概念。国际化是一种设计方法,...

    struts2国际化例子源码

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

    用Struts1实现的国际化语言切换

    下面我们将深入探讨如何使用Struts1实现国际化语言切换。 首先,理解国际化的基本概念是必要的。国际化是一种设计方法,允许软件应用根据不同地区的文化、语言和习惯进行定制。在Web应用中,这通常通过资源包...

    Struts2国际化Demo

    在“Struts2国际化Demo”中,我们主要探讨的是如何利用Struts2框架实现应用的多语言支持,即国际化(i18n)功能。国际化是一种设计方法,使得软件能够根据不同地区的语言和文化习惯进行调整,使得全球用户都能无障碍...

    struts2 国际化(中英文切换 占位符)

    在Struts2中实现国际化,可以提供多语言支持,比如中英文切换,这对于全球用户来说非常关键。 首先,我们需要理解国际化的基本概念。国际化不是简单地翻译文本,而是设计一个可扩展的系统,以便能够轻松添加新的...

    struts2国际化测试

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

    Struts1 和 Struts 2 国际化全局资源

    Struts1 和 Struts 2 是两种非常流行的Java Web开发框架,它们都提供了对国际化(i18n)的支持,使得应用能够根据用户的语言和地区显示相应的本地化内容。国际化是软件设计的一个重要方面,它允许应用程序在全球范围...

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

    在Struts2中实现国际化(i18n)是一项重要功能,它允许应用程序支持多种语言,以满足全球用户的需求。国际化不仅仅是翻译文本,而是设计应用程序以适应不同地区的文化习惯和语言需求。 首先,让我们来探讨一下...

    struts2国际化+简单的标签+用户注册和登录

    总的来说,这个项目提供了一个基础的Struts2应用实例,展示了如何实现国际化、使用Struts2标签库,以及创建简单的用户注册和登录功能,尽管它并不涉及实际的数据存储。对于学习和理解Struts2框架的运作机制,这是一...

    Struts2国际化支持引导(初)

    总结,Struts2的国际化支持使得开发者能够轻松地为多种语言的用户提供一致的体验。从创建Resource Bundle,配置Struts2,到在Action和视图中使用,整个流程是直观且灵活的。通过理解这些基本概念和实践,你可以为你...

    struts2 国际化使用

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

    struts2框架国际化

    国际化(i18n)是Struts2的一个重要特性,使得应用能够支持多种语言环境,以满足全球用户的语言需求。以下是对Struts2框架国际化实现的详细讲解。 1. **国际化的基本概念** 国际化(Internationalization,简称i18...

    struts2语言国际化

    2. 配置全局结果:在`struts.xml`中,添加一个全局结果来处理语言切换: ```xml &lt;param name="actionName"&gt;yourActionName ${language} ``` 这里的`yourActionName`是你的具体Action名称,`language`参数将...

    struts2实现国际化

    2. **配置Struts2**:在Struts2的配置文件(struts.xml或struts-default.xml)中,我们需要添加一个Interceptor(拦截器)来处理国际化。`i18n interceptor`是专门用于这个目的的,它可以自动检测用户的浏览器设置并...

    struts2拦截器国际化

    通过这种方式,我们可以在不修改Action代码的情况下,利用Struts2拦截器实现国际化策略的动态调整,从而提供更灵活的多语言支持。 总的来说,Struts2拦截器和国际化是两个关键特性,它们分别提供了控制流管理和多...

    struts2 国际化

    5. 动态切换语言:为了允许用户在应用中动态切换语言,可以在页面上提供一个选择语言的选项,通过提交表单或点击链接来改变`session`或`cookie`中的Locale信息,然后重定向到当前页面,Struts2会自动应用新的语言...

Global site tag (gtag.js) - Google Analytics