love fish大鹏一曰同风起,扶摇直上九万里

常用链接

统计

积分与排名

friends

link

最新评论

struts多国语言国际化处理(现以中文英文切换为例) (转)

1.引言
  因为最近有个英国的项目要求中英文切换,又由于我们开发是用struts+hibernate的,所以我们就把原先做两个版本的构思抛掉,就用struts的国际化处理方案。
2.资料
  首先,我们要准备两份配置文件中文和英文的
  中文:ApplicationResources_zh_CN.properties
  英文:ApplicationResources_en.properties  (千万不要用默认的ApplicationResources.properties myeclipse自动生成,可能会不成功,我起先就是因为这个怎么都不行的,呵呵!)
3.准备开始
1) ApplicationResources_zh_CN.properties的内容
#zh_CN
username=纯冰
2)ApplicationResources_en.properties的内容
#en
username=chunkyo
3)一个action
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.lan.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import org.apache.struts.Globals;
import java.util.Locale;

/**
 * MyEclipse Struts
 * Creation date: 02-07-2007
 *
 * XDoclet definition:
 * @struts.action validate="true"
 */
public class ChangeLanguageAction extends Action {
 /*
  * Generated Methods
  */

 /**
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  // TODO Auto-generated method stub
  String lan=request.getParameter("lan");
  if(lan.equals("1"))
  {
   request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);
  }
  else if(lan.equals("0"))
  {
   request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);
  }
  else
  {
   request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);
  }
  return mapping.findForward("index");
 }
}

4)一个页面
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
  <head>
    <html:base />
   
    <title><bean:message key="username"/></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">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <html:link page="/changeLanguage.do?lan=0">English</html:link>
    <html:link page="/changeLanguage.do?lan=1">Chinese</html:link>
    <bean:message key="username"/>
  </body>
</html:html>
4)配置文件(struts-config.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!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>
  <data-sources />
  <form-beans />
  <global-exceptions />
  <global-forwards >
    <forward name="index" path="/index.jsp" />

  </global-forwards>

  <action-mappings >
    <action path="/changeLanguage" type="com.lan.struts.action.ChangeLanguageAction" />

  </action-mappings><message-resources parameter="com.lan.struts.ApplicationResources" />
</struts-config>

5)结果
 1。默认
http://localhost:8080/lan/
EnglishChinese 纯冰
2。英文
http://localhost:8080/lan/changeLanguage.do?lan=0
EnglishChinese chunkyo
3。中文
http://localhost:8080/lan/changeLanguage.do?lan=1
EnglishChinese 纯冰
6)结论
用struts做国际化处理 多国语言处理很方便 呵呵!

posted on 2007-03-23 09:39 liaojiyong 阅读(2591) 评论(2)  编辑  收藏 所属分类: Struts

评论

# re: struts多国语言国际化处理(现以中文英文切换为例) (转) 2007-12-20 14:35 jiangyang_001631@163.com

请问:如果我想在其它页面也实现中英文切换连接,选择后返回到当前请求的页面,而不是你实现的固定的“index.jsp”页面,这样的效果如何来实现?   回复  更多评论   

# re: struts多国语言国际化处理(现以中文英文切换为例) (转) 2008-06-11 13:42 na

Abstract: This paper characterises the dynamics of advertising investment in a spatial monopoly, contrasting the socially optimal behaviour of a benevolent planner against that of a profit-seeking monopolist. In steady state, the monopolist always distorts both output and advertising decisions as compared to the social optimum, except in a situation where, under both monopoly and social planning, the equilibrium entails full market coverage. © 2004 Elsevier B.V. All rights reserved. (27 refs.)
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: