java网站的中英文切换该怎样实现呀。。 我用java做了个网站想实现中文和英文版的,我用的框架是struts1,hibernate,spring框架,好多人说用国际化就可以实现,但是具体操作是什么呀,怎呀实现呀。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是国际化呀,具体作法网上你去找,思路就是把你页面上显示文字的地方,全部提出来写到一配置文件里,一份中文配置文件,一份英文配置文件,hash对应,比如 英语配置文件中a="China" ,那中文就是a="中国",页面上对应a的位置就可以显示成2种语言,就是切换这2份国际化的配置文件 struts 可以的饿!!有个文件 可以有中英两个版本 忘了名字!! 我知道可以,但是你页面上的东西都得写在配置文件中,还有一些提示性的语言,也就是说只要是有中文的地方都要写在配置文件里,你觉得struts能做到吗?我觉得理论上可以,实际上不行 去百度或google搜下struts国际化 应该会有很多具体实现的步骤啊 en_US和zh_CN两个配置文件,获取要显示的语言,设置locale 用struts可以实现的啊主要是要用到 en_US和zh_CN两个配置文件把你想要转换的文字写在属性文件里面 但要对应 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); 这是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> 这是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"); } }这些是重要的代码部分具体的配置文件楼主可以一一配置 struts1 建议楼主看看张孝祥的struts视频 里边讲的非常清楚 最简单的方法:1,把网站的固定文本,写在properties里,一个zn的一个en的,参数名字要一样。2,根据客户的选择,在ta的session存储客户对语言的选择。3,编写一个自定义标签,从session中查出客户所选的语言,并选择对应的properties里的数据输出。4,改写页面,把所有固定文本改成标签生成。 去网上搜一下啊,很容易得啊struts1中就有这样的功能啊呵呵 get 一个locale 然后一通读配置文件 就OK了 struts里面有个localeAction,至于怎么用你可以看struts下载包里面的mailreader这个例子,很全很好用,多看看官方的例子对你的帮助更大 国际化的例子google上一搜一大堆 http://www.baidu.com/baidu?wd=struts+%B9%FA%BC%CA%BB%AF&tn=monline_dghttp://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 实现语言切换无非是跟locale相关. 做国际化, 选择语言也就是改变当前的locale, 懂了这个原理之后,去参照Struts/Struts2的文档去做国际化, 相信你不会花多少时间的 配置一个property文件例如:success = 成功 fail = 失败 不要意思 是properties文件 那我不想重新做,在那个properties文件里怎么配置呢。。 # -- standard errors --errors.header=<UL>errors.prefix=<LI>errors.suffix=</LI>errors.footer=</UL>drp.button.query=Searchdrp.button.reset=Resetdrp.button.topPage=Topdrp.button.previousPage=Previousdrp.button.nextPage=Nextdrp.button.bottomPage=Buttomdrp.button.add=Adddrp.button.delete=Deletedrp.button.modify=Modifydrp.button.uploadImage=Upload Imagedrp.button.goback=Go Backdrp.button.colse=Closedrp.page.totalPages=Total Pagesdrp.page.currentPage=Current Page drp.basedata=Base Datadrp.basedata.item=Item Maintenancedrp.basedata.item.title=Item Informationdrp.basedata.item.itemNo=Item Nodrp.basedata.item.itemName=Item Namedrp.basedata.item.spec=Specdrp.basedata.item.pattern=Patterndrp.basedata.item.category=Categorydrp.basedata.item.unit=Unitdrp.basedata.item.image=Imagedrp.basedata.item.selectimage=Choosedrp.basedata.item.error.add=Add item failuredrp.basedata.item.error.delete=Delete item failuredrp.database.item.error.findallitem=All items for failuredrp.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\u8be2drp.button.reset=\u91cd\u7f6edrp.button.topPage=\u9996\u9875drp.button.previousPage=\u4e0a\u9875drp.button.nextPage=\u4e0b\u9875drp.button.bottomPage=\u5c3e\u9875drp.button.add=\u6dfb\u52a0drp.button.delete=\u5220\u9664drp.button.modify=\u4fee\u6539drp.button.uploadImage=\u4e0a\u4f20\u56fe\u7247drp.button.goback=\u8fd4\u56dedrp.button.colse=\u5173\u95eddrp.page.totalPages=\u9875\u6570drp.page.currentPage=\u5f53\u524d\u9875drp.basedata=\u57fa\u7840\u6570\u636e\u7ba1\u7406drp.basedata.item=\u7269\u6599\u7ef4\u62a4drp.basedata.item.title=\u7269\u6599\u4fe1\u606fdrp.basedata.item.itemNo=\u7269\u6599\u4ee3\u7801drp.basedata.item.itemName=\u7269\u6599\u540d\u79f0drp.basedata.item.spec=\u7269\u6599\u89c4\u683cdrp.basedata.item.pattern=\u578b\u53f7drp.basedata.item.category=\u7c7b\u522bdrp.basedata.item.unit=\u8ba1\u91cf\u5355\u4f4ddrp.basedata.item.image=\u56fe\u7247drp.basedata.item.selectimage=\u9009\u62e9\u56fe\u7247drp.basedata.item.error.add=\u6dfb\u52a0\u7269\u6599\u5931\u8d25drp.basedata.item.error.delete=\u5220\u9664\u7269\u6599\u5931\u8d25drp.database.item.error.findallitem=\u67e5\u8be2\u6240\u6709\u7269\u6599\u5931\u8d25drp.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文件里就看到了...国际化做起来有点烦哦...要耐心 用struts2做个国际化支持就OK了! 其实原来学struts的时候就发现国际化挺麻烦的 没有办法 如果做一个大的项目的话 那就费劲了但是不知道其他什么方法。。 我再跟一贴。国际化这么简单的东西,用得着使用struts吗?不能把问题复杂化。 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"/> 就行了; struts2 中有i18n这个interceptor这个拦截器 可以做到...字符转换 ,但是要注意:使用中文时 使用native2ascii这个命令将中文装化成 ascii码... 网上搜索下 一大把 struts国际化 国际化 怎么考虑那些从数据库里面读出来的字段,i18n能做的到只是一些label为中英文双语的 但是从数据库读出来的怎么解决中英双语 说实话,网站国际化,十个有九个用不到,所以很多都是没有实际中用到过。struts1的国际化说实话我也没有实际用到过。框架本身提供了国际化支持,这个你可以网上找一些,这个很简单就配置了。然后是根据#33楼的,要做国际化就需要对你页面的所有汉字进行编码了,正规的即使你的网站不做国际化,你的页面上也应该看到不到任何的汉字,都是转码之后的。这样你就需要有2套,一套是汉字的,一套是英文的 properties文件,配置好国际化之后struts1会自动根据机器的本地语言调用不同的properties文件,当然你也可以在页面增加按钮主动进行切换。思路大体就是这样 oracle下载安装问题 struts下如何进行多人并行开发 java开发使用的框架、技术 一个小问题! 考研,你选择哪个方向?? 关于j2ee,ejb,javabean的电子文档 有没有谁用过Jetty?请帮忙。分不够再给。 我想请问大家是如何看待EJB 和 JDO的? Jbuilder编写EntityBean数据库问题 gson对map的list集合的json转换 WebService怎么返回一个XML文件。。。 不借助eclipse能得出结果的,他/她就是高高手
主要是要用到 en_US和zh_CN两个配置文件
把你想要转换的文字写在属性文件里面 但要对应
//获取本地语言
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);
这是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>
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");
}
}
这些是重要的代码部分
具体的配置文件楼主可以一一配置
1,把网站的固定文本,写在properties里,一个zn的一个en的,参数名字要一样。
2,根据客户的选择,在ta的session存储客户对语言的选择。
3,编写一个自定义标签,从session中查出客户所选的语言,并选择对应的properties里的数据输出。
4,改写页面,把所有固定文本改成标签生成。
struts1中就有这样的功能啊
呵呵
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
例如:success = 成功 fail = 失败
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文件里就看到了...
国际化做起来有点烦哦...要耐心
没有办法 如果做一个大的项目的话 那就费劲了
但是不知道其他什么方法。。
国际化这么简单的东西,用得着使用struts吗?不能把问题复杂化。
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"/> 就行了;
说实话,网站国际化,十个有九个用不到,所以很多都是没有实际中用到过。struts1的国际化说实话我也没有实际用到过。框架本身提供了国际化支持,这个你可以网上找一些,这个很简单就配置了。然后是根据#33楼的,要做国际化就需要对你页面的所有汉字进行编码了,正规的即使你的网站不做国际化,你的页面上也应该看到不到任何的汉字,都是转码之后的。这样你就需要有2套,一套是汉字的,一套是英文的 properties文件,配置好国际化之后struts1会自动根据机器的本地语言调用不同的properties文件,当然你也可以在页面增加按钮主动进行切换。思路大体就是这样