我用java做了个网站想实现中文和英文版的,我用的框架是struts1,hibernate,spring框架,好多人说用国际化就可以实现,但是具体操作是什么呀,怎呀实现呀。。

解决方案 »

  1.   

    就是国际化呀,具体作法网上你去找,思路就是把你页面上显示文字的地方,全部提出来写到一配置文件里,一份中文配置文件,一份英文配置文件,hash对应,比如 英语配置文件中a="China" ,那中文就是a="中国",页面上对应a的位置就可以显示成2种语言,就是切换这2份国际化的配置文件
      

  2.   

    struts 可以的饿!!有个文件 可以有中英两个版本 忘了名字!!
      

  3.   

    我知道可以,但是你页面上的东西都得写在配置文件中,还有一些提示性的语言,也就是说只要是有中文的地方都要写在配置文件里,你觉得struts能做到吗?我觉得理论上可以,实际上不行
      

  4.   

    去百度或google搜下struts国际化 应该会有很多具体实现的步骤啊
      

  5.   

    en_US和zh_CN两个配置文件,获取要显示的语言,设置locale
      

  6.   

    用struts可以实现的啊
    主要是要用到 en_US和zh_CN两个配置文件
    把你想要转换的文字写在属性文件里面  但要对应
      

  7.   

    struts2中可以这样设置
    //获取本地语言
    Locale lc = Locale.getDefault();
                    //this.getLanguageFlg()是获取你选择的语言
    System.out.println("languageFlg============="+this.getLanguageFlg());
    if(!"".equals(this.getLanguageFlg().trim()) && 
    !"1".equals(this.getLanguageFlg().trim())) {
    lc = Locale.US;
    }
    System.out.println(lc.toString());
    ActionContext.getContext().setLocale(lc);
    ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE", lc);
      

  8.   


    这是jsp页面<script language="javascript">
          function changeLanguage(language) {
              if(language == "en") {
                  document.all("language").value = "en";
              } else {
                  document.all("language").value = "cn";
              }
              document.forms[0].submit();
          }
      </script>
     </head>
     <body>
      <html:form action="/OwnerAction">
      <input type="hidden" name="language">
        <bean:message key="owner.name" /> :</br>
       <bean:message key="owner.sex" /> :</br>
        <input type="button" name="langEn" value="英文版" onclick="changeLanguage('en')">   
       <input type="button" name="langCn" value="中文版" onclick="changeLanguage('cn')">
      </html:form>
     <body>
    </html:html>
      

  9.   

    这是ActionString language = request.getParameter("language");   
       if (language.equals("en")) {
             request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);    
        } else {    
             request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.CHINESE);
        }   
             return mapping.findForward("owner");
         }
     }
    这些是重要的代码部分
    具体的配置文件楼主可以一一配置
      

  10.   

    struts1  建议楼主看看张孝祥的struts视频  里边讲的非常清楚
      

  11.   

    最简单的方法:
    1,把网站的固定文本,写在properties里,一个zn的一个en的,参数名字要一样。
    2,根据客户的选择,在ta的session存储客户对语言的选择。
    3,编写一个自定义标签,从session中查出客户所选的语言,并选择对应的properties里的数据输出。
    4,改写页面,把所有固定文本改成标签生成。
      

  12.   

    去网上搜一下啊,很容易得啊
    struts1中就有这样的功能啊
    呵呵
      

  13.   

    get 一个locale 然后一通读配置文件 就OK了
      

  14.   

    struts里面有个localeAction,至于怎么用你可以看struts下载包里面的mailreader这个例子,很全很好用,多看看官方的例子对你的帮助更大
      

  15.   

    国际化的例子google上一搜一大堆
      

  16.   

    http://www.baidu.com/baidu?wd=struts+%B9%FA%BC%CA%BB%AF&tn=monline_dg
    http://www.google.com.hk/search?q=struts+%E5%9B%BD%E9%99%85%E5%8C%96&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:zh-CN:official&client=firefox-a
      

  17.   

    实现语言切换无非是跟locale相关.  做国际化, 选择语言也就是改变当前的locale, 懂了这个原理之后,去参照Struts/Struts2的文档去做国际化, 相信你不会花多少时间的
      

  18.   

    配置一个property文件
    例如:success = 成功 fail = 失败
      

  19.   

    不要意思  是properties文件
      

  20.   

    那我不想重新做,在那个properties文件里怎么配置呢。。
      

  21.   

    # -- standard errors --
    errors.header=<UL>
    errors.prefix=<LI>
    errors.suffix=</LI>
    errors.footer=</UL>drp.button.query=Search
    drp.button.reset=Reset
    drp.button.topPage=Top
    drp.button.previousPage=Previous
    drp.button.nextPage=Next
    drp.button.bottomPage=Buttom
    drp.button.add=Add
    drp.button.delete=Delete
    drp.button.modify=Modify
    drp.button.uploadImage=Upload Image
    drp.button.goback=Go Back
    drp.button.colse=Closedrp.page.totalPages=Total Pages
    drp.page.currentPage=Current Page drp.basedata=Base Data
    drp.basedata.item=Item Maintenancedrp.basedata.item.title=Item Information
    drp.basedata.item.itemNo=Item No
    drp.basedata.item.itemName=Item Name
    drp.basedata.item.spec=Spec
    drp.basedata.item.pattern=Pattern
    drp.basedata.item.category=Category
    drp.basedata.item.unit=Unit
    drp.basedata.item.image=Image
    drp.basedata.item.selectimage=Choosedrp.basedata.item.error.add=Add item failure
    drp.basedata.item.error.delete=Delete item failure
    drp.database.item.error.findallitem=All items for failure
    drp.database.item.error.finditembyid=According to Item Code for failure, ItemCode={0} 
    drp.database.item.error.modify=Modify item failure,ItemCode={0}
    ------------------------------------------
    # -- standard errors --
    errors.header=<UL>
    errors.prefix=<LI>
    errors.suffix=</LI>
    errors.footer=</UL>drp.button.query=\u67e5\u8be2
    drp.button.reset=\u91cd\u7f6e
    drp.button.topPage=\u9996\u9875
    drp.button.previousPage=\u4e0a\u9875
    drp.button.nextPage=\u4e0b\u9875
    drp.button.bottomPage=\u5c3e\u9875
    drp.button.add=\u6dfb\u52a0
    drp.button.delete=\u5220\u9664
    drp.button.modify=\u4fee\u6539
    drp.button.uploadImage=\u4e0a\u4f20\u56fe\u7247
    drp.button.goback=\u8fd4\u56de
    drp.button.colse=\u5173\u95eddrp.page.totalPages=\u9875\u6570
    drp.page.currentPage=\u5f53\u524d\u9875drp.basedata=\u57fa\u7840\u6570\u636e\u7ba1\u7406
    drp.basedata.item=\u7269\u6599\u7ef4\u62a4drp.basedata.item.title=\u7269\u6599\u4fe1\u606f
    drp.basedata.item.itemNo=\u7269\u6599\u4ee3\u7801
    drp.basedata.item.itemName=\u7269\u6599\u540d\u79f0
    drp.basedata.item.spec=\u7269\u6599\u89c4\u683c
    drp.basedata.item.pattern=\u578b\u53f7
    drp.basedata.item.category=\u7c7b\u522b
    drp.basedata.item.unit=\u8ba1\u91cf\u5355\u4f4d
    drp.basedata.item.image=\u56fe\u7247
    drp.basedata.item.selectimage=\u9009\u62e9\u56fe\u7247drp.basedata.item.error.add=\u6dfb\u52a0\u7269\u6599\u5931\u8d25
    drp.basedata.item.error.delete=\u5220\u9664\u7269\u6599\u5931\u8d25
    drp.database.item.error.findallitem=\u67e5\u8be2\u6240\u6709\u7269\u6599\u5931\u8d25
    drp.database.item.error.finditembyid=\u67e5\u8be2\u7269\u6599\u5931\u8d25,\u7269\u6599\u4ee3\u7801={0}
    drp.database.item.error.modify=\u4fee\u6539\u7269\u6599\u5931\u8d25,\u7269\u6599\u4ee3\u7801={0}
    把上面的两段代码,分别考到两个.properties文件里就看到了...
    国际化做起来有点烦哦...要耐心
      

  22.   

    用struts2做个国际化支持就OK了!
      

  23.   

    其实原来学struts的时候就发现国际化挺麻烦的 
    没有办法 如果做一个大的项目的话  那就费劲了
    但是不知道其他什么方法。。
      

  24.   

    我再跟一贴。
    国际化这么简单的东西,用得着使用struts吗?不能把问题复杂化。
      

  25.   


    struts国际化,写两个property文件,一个中文,一个英文,中文的需要转换成ascii。你可以先将文件写成中文的,然后执行命令native2ascii。具体过程如下:
      1.环境:
          Web服务器: Tomcat 5.0.19
           操作系统: Win2000 Server
             JVM   : jdk 1.4
           数 据 库: Oracle 8.1.7
           开发工具: struts studio 5.2 pro   for  eclipse
      2.先将所有*.jsp 网页中开头处加入    <%@ page language="java" contentType="text/html; charset=utf-8" %>
         再设置<html:html locale = "true">  3.然后编辑好两个*.properties文件,放在classes文件夹下你指定的地方,这里是放在/web-inf/classes/com/wiley 下,它们分别是:    ApplicationResources.properties  (英文资源文件)
        ApplicationResources_zh.properties (中文资源文件)
        随便用什么工具编写都行啊!
      4.将ApplicationResources_zh.properties转码成gb2312。    
    将ApplicationResources_zh.properties更名为ApplicationResources_xx.properties
        在DOS命令行进入ApplicationResources_xx.properties所在的文件夹
        使用命令:native2ascii -encoding gb2312 ApplicationResources_xx.properties ApplicationResources_zh.properties(至于你为什么会出现“native2ascii不是内部命令”,,请查其它资料,可能你要设置环境变量,因为他是jdk的文件夹bin下的一个应用程序)
       5.接下来配置struts-config.xml,很简单,我们加入:   <message-resources parameter="com.wiley.ApplicationResources"/>  就行了;
      

  26.   

    struts2 中有i18n这个interceptor这个拦截器 可以做到...字符转换 ,但是要注意:使用中文时 使用native2ascii这个命令将中文装化成 ascii码...
      

  27.   

    网上搜索下 一大把 struts国际化
      

  28.   

    国际化 怎么考虑那些从数据库里面读出来的字段,i18n能做的到只是一些label为中英文双语的 但是从数据库读出来的怎么解决中英双语
      

  29.   


    说实话,网站国际化,十个有九个用不到,所以很多都是没有实际中用到过。struts1的国际化说实话我也没有实际用到过。框架本身提供了国际化支持,这个你可以网上找一些,这个很简单就配置了。然后是根据#33楼的,要做国际化就需要对你页面的所有汉字进行编码了,正规的即使你的网站不做国际化,你的页面上也应该看到不到任何的汉字,都是转码之后的。这样你就需要有2套,一套是汉字的,一套是英文的 properties文件,配置好国际化之后struts1会自动根据机器的本地语言调用不同的properties文件,当然你也可以在页面增加按钮主动进行切换。思路大体就是这样