本文转自: http://blog.csdn.net/yzhz/archive/2008/01/15/2045295.aspx

如何实现网站多语言版本
随着国际化的深入,越来越多的网站提供多语言版本给不同国家的用户。最近做的一个项目也涉及到这块,顺便做个总结。
一、通常实现方法有两种:
1、采用多语言模板,通过程序渲染不同语言版本的模板。
比如:
简体版: 文件名.zh_CN.后缀
繁体版: 文件名.zh_TW.后缀
英文版: 文件名.en_US后缀
优点:
(1) 不同语言版本有各自的模板,维护量大,但维护简单。甚至不同版本的模板在显示风格上都可以不同。 
缺点:
(1) 同一商业逻辑的页面,需要维护多套模板,有重复工作。 
2、采用同一模板,利用ResourceBundle配置多语言resource文件,实现网页上不同语言版本的显示。
优点:
(1) 同一商业逻辑的页面,只需要维护一套模板。
缺点:
(2) 模板的设计难度比较大,需要适应不同语言版本的需求。这个我们在实际工作中遇到过,有些显示英文字符没有问题的样式,在显示中文会出现问题,单个模板的维护难度比较大些。
二、我们先了解一下基础知识,这些会在实际开发中会用到。
1、 java.util.Locale
System.out.println(Locale.getDefault().toString());
输出:zh_CN 表示语言_国家/地区
常用的Locale为
Locale.TRADITIONAL_CHINESE   zh_TW
Locale. SIMPLIFIED_CHINESE     zh_CN
Locale.US                       en_US 
2、 字符集
我们常用的字符集:GBK, UTF-8, ISO8859-1。 
三、网页中如何实现多语言版本显示?
1、 我们将网页的输出字符集采用UTF-8,即返回网页的http头为:
Content-Type: text/html;charset=UTF-8
这个就需要我们在返回网页内容时候,调用以下语句设置网页的字符集。
servletResponse.setCharacterEncoding("UTF-8") 
2、 网页GET/POST提交的时候采用UTF-8的方式。
(1) GET方式:
URL中的非ASCII采用UTF-8的方式编码,比如
http://www.test.com/中国.html?keywords=中国
页面显示的链接为:
http://www.test.com/E4%B8%AD%E5%9B%BD.html?keywords=E4%B8%AD%E5%9B%BD 
(2) POST方式:
如果网页的输出字符集为UTF-8,则POST提交的时候表单的数据也是采用UTF-8编码的。 
3、 在服务器端我们要设置服务器的字符集。
如果是jboss服务器的话,则需设置tomcat的server.xml
${jboss-home}/server/default/deploy/jbossweb-tomcat55.sar/server.xml
<Connector port="80" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" /> 
4、 在应用程序,在调用HttpServletRequest.getParameters(),需要调用HttpServletRequest.setCharacterEncoding("UTF-8"); 
5、 采用第一种方案:采用多语言模板。我们可以定义:
Index_zh_CN.html
Index_zh_TW.html
Index_en_US.html
我们可以通过不同的URL,或者用户的IP等信息,选择不同的模板进行渲染。 
6、 采用第二种方案:采用单一模板。通过不同语言版本的配置文件获得不同的多语言版本字符串。
java.util.ResourceBundle提供的properties文件本身并很好的支持非ASCII的字符集,我们建议用户采用XMLResourceBundle,采用xml文件的方式定义配置文件。Xml文件本身可以很好的描述自己的编码格式。
<?xml version="1.0" encoding="UTF-8"?>。

如何实现网站多语言版本相关推荐

  1. 建设网站多语言版本,费用如何计算?

    网站建设公司在进行网站报价时,除非客户有特别提出,不然一般情况下通常只有针对单一语言版本提出报价,例如繁体中文版.如果还需要另外建置简体中文版或英文版,此时就会有额外的费用产生.许多人会有这样的疑问: ...

  2. ASP.NET网站实现多语言版本 【转】

    一.项目概述 1.目的             利用资源文件解决网站多语言版本的问题,在制作网站的时候,经常会遇到多种语言的版本,早期在asp的系统当中,很多网站开发师都会用传统的方法来开发,就是将同 ...

  3. 一步一步实现网站的多语言版本

    网站在开发的过程中需要实现多语言版本,我们暂且认为有英语和汉语两个版本.网站结构包括,UI过程,rest服务,以及相应的js,各个部分我们都要实现多语言,不要求一键切换,但是在部署过程中要能实现多与语 ...

  4. 多语言版本网站建设数据库设计和考虑的因素

    由于现在网站上动态应用日益增多,相当多的网站还会使用文件或者数据库来存储应用信息,因此如果文件或者数据库中存储的内容与语言相关时,还需要特别注意.对于存储在数据库中信息,可以采取以下几种方式支持多语言 ...

  5. 强大的多语言版本在线图片处理网站

    强大的多语言版本在线图片处理网站 http://www.pixlr.com/ 进入这个网站,从事多年平面设计的小编我已经被它强大的功能震住了,太牛B了,界面和功能是仿photoshop的,连快捷键也是 ...

  6. 多语言网站(如何实现网站的多语言版本?)

    近日,公司要做一个多语言的网站,今天在网上收集资料,下面是个人觉得很不错的文章,有兴趣的朋友可以参考下: ----------------------- 多语言网站,顾名思义就是能够以多种语言(而不是 ...

  7. 实现一个C语言版本的圣诞树(附源代码)

    圣诞树C语言源代码,关注飞雪无情公众号即可获取,详见文章底部 2018年的圣诞节前夜,使用GO语言实现了一颗随机圣诞树,也就是每次运行程序,生成的圣诞树都不一样,独一无二的.当时受到了很大的欢迎,很多 ...

  8. Asp,PHP,JSP,.Net几种网站开发语言比较

    导读: ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的.互动的.高性能的WEB服务应用程序.ASP采用脚本语言VBScript(Java ...

  9. 主流网站开发语言 ASP ASP.NET JSP PHP CGI

    主流网站开发语言之ASP: ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码 ...

最新文章

  1. 清华博士找工作7个月没着落,本科学历影响几时休?
  2. 物流系统高可用架构案例
  3. mybatis 注解 动态sql_Mybatis 的动态 SQL 语句
  4. Linker加载so失败问题分析
  5. C++/CLI中的资源清理(Destructor,Finalizer)
  6. 利用bootstraptable展示数据,对数据进行排序分页等操作
  7. python文本特征选择,机器学习--特征选择(Python实现)
  8. mysql编程流程控制_MySql流程控制结构
  9. mysql 跳过一个事物_MySQL基于GTID的数据恢复
  10. git branch commands
  11. 九齐单片机NY8B062D项目开发总结
  12. LookupError(‘unknown encoding: GB2312‘)
  13. 管理信息系统需求调研分析指南-软件工程-www.knowsky.com
  14. 风行python_Python是啥?竟然彻底改变了老板对我的看法……
  15. 单元测试(01) 调试过程中遇到 Method isEmpty in android.text.TextUtils not mocked
  16. 仿B站的视频评论列表
  17. 教科书式RSA方案面临的攻击及防御措施
  18. He initialization
  19. 那些百万年薪的算法工程师,都是经历了哪些九死一生?
  20. OCR之论文笔记TrOCR

热门文章

  1. Java类加载执行顺序
  2. 五步教你制作漂亮精致的HTML时钟
  3. pyqt5使用QPainter绘制坐标轴并显示散点图
  4. Windows实时运动控制软核(四):LOCAL高速接口测试之VB.NET
  5. 笔记本重装系统后为什么右边键盘不能打字母只能打数字?
  6. Qt-QML-Popup,弹层界面编写
  7. stylegan2论文代码复现超详细
  8. 可变自动编码器(VAE)
  9. python猴子摘桃问题_桃子
  10. 玩和平精英暗夜危机僵尸模式吓尿了?这十个对抗僵尸无敌位置你都知道吗?