java网站的中英文切换该怎样实现呀。。
我用java做了个网站想实现中文和英文版的,我用的框架是struts1,hibernate,spring框架,好多人说用国际化就可以实现,但是具体操作是什么呀,怎呀实现呀。。。。。。。。。。。 --------------------编程问答-------------------- 就是国际化呀,具体作法网上你去找,思路就是把你页面上显示文字的地方,全部提出来写到一配置文件里,一份中文配置文件,一份英文配置文件,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页面
--------------------编程问答-------------------- 这是Action
<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>
String 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_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 --------------------编程问答-------------------- 实现语言切换无非是跟locale相关. 做国际化, 选择语言也就是改变当前的locale, 懂了这个原理之后,去参照Struts/Struts2的文档去做国际化, 相信你不会花多少时间的 --------------------编程问答--------------------
常用的i18n... --------------------编程问答-------------------- 配置一个property文件
例如:success = 成功 fail = 失败 --------------------编程问答--------------------
不要意思 是properties文件 --------------------编程问答-------------------- 国际化只是文字上而已,很多网站的中英文,连风格,排版都不一样的,页面重新做的。 --------------------编程问答-------------------- 好好好好好好好 --------------------编程问答--------------------
那我不想重新做,在那个properties文件里怎么配置呢。。 --------------------编程问答--------------------
# -- 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=Close
drp.page.totalPages=Total Pages
drp.page.currentPage=Current Page
drp.basedata=Base Data
drp.basedata.item=Item Maintenance
drp.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=Choose
drp.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\u95ed
drp.page.totalPages=\u9875\u6570
drp.page.currentPage=\u5f53\u524d\u9875
drp.basedata=\u57fa\u7840\u6570\u636e\u7ba1\u7406
drp.basedata.item=\u7269\u6599\u7ef4\u62a4
drp.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\u7247
drp.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文件里就看到了...
国际化做起来有点烦哦...要耐心 --------------------编程问答-------------------- 有意思。 --------------------编程问答-------------------- 看出来了 楼主基础。。 这么说了 还要具体代码 --------------------编程问答--------------------
不是刚接触吗,先参考别人的,然后自己在琢磨琢磨。。
呵呵呵呵呵。。。。
大家帮帮忙吧、、、、、、、、 --------------------编程问答-------------------- 没有谁是一开始就会的,只要多学习,多思考,多练,很快就不是初级的了,。。。。。。。。。。。。。。。。。。。。。。。。。。 --------------------编程问答-------------------- 用struts2做个国际化支持就OK了! --------------------编程问答-------------------- 其实原来学struts的时候就发现国际化挺麻烦的
没有办法 如果做一个大的项目的话 那就费劲了
但是不知道其他什么方法。。 --------------------编程问答-------------------- mark!!!1 --------------------编程问答-------------------- 回贴的人这么多。看来都会国际化。
呵呵。 --------------------编程问答-------------------- 我再跟一贴。
国际化这么简单的东西,用得着使用struts吗?不能把问题复杂化。 --------------------编程问答-------------------- 我也正在愁着这个问题呢,楼主要是有了解决的办法一定要告诉我啊,谢谢了 --------------------编程问答-------------------- 我直接用的两套页面,
英文一套页面,中文一套页面
根据用户的选择来决定显示哪个页面。 --------------------编程问答-------------------- 国际化 --------------------编程问答-------------------- mark 过两天要用到这个东西 --------------------编程问答--------------------
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码... --------------------编程问答-------------------- 这个不需要什么框架实现起来也好办的 配置好中英2种属性文件 再用 属性文件读取其中的一个。 --------------------编程问答-------------------- 网上搜索下 一大把 struts国际化 --------------------编程问答-------------------- 不是用种东东叫国际化么? --------------------编程问答-------------------- 最好再你的软件比较成熟之后,再考虑国际化。国际化很简单。但实现,却是个漫长而重复的工作。 --------------------编程问答-------------------- 国际化这个太复杂了,太难受了,写的累死人 --------------------编程问答-------------------- --------------------编程问答-------------------- en_US和zh_CN两个配置文件 --------------------编程问答-------------------- 可以把每个页面都做一个中文的,一个英文的,根据客户浏览器的信息来识别是现实中文的页面还是英文的。 --------------------编程问答-------------------- struts国际化 --------------------编程问答-------------------- 国际化 怎么考虑那些从数据库里面读出来的字段,i18n能做的到只是一些label为中英文双语的 但是从数据库读出来的怎么解决中英双语 --------------------编程问答-------------------- 这个会影响布局吧 --------------------编程问答--------------------
说实话,网站国际化,十个有九个用不到,所以很多都是没有实际中用到过。
struts1的国际化说实话我也没有实际用到过。框架本身提供了国际化支持,这个你可以网上找一些,这个很简单就配置了。
然后是根据#33楼的,要做国际化就需要对你页面的所有汉字进行编码了,正规的即使你的网站不做国际化,你的页面上也应该看到不到任何的汉字,都是转码之后的。
这样你就需要有2套,一套是汉字的,一套是英文的 properties文件,配置好国际化之后struts1会自动根据机器的本地语言调用不同的properties文件,当然你也可以在页面增加按钮主动进行切换。
思路大体就是这样 --------------------编程问答--------------------
这不是网上么?
补充:Java , Java EE