转自:http://www.cnbruce.com/blog/showlog.asp?cat_id=27&log_id=691

语言是信息传播的主要障碍。

多语言网站,顾名思义就是能够以多种语言(而不是单种语言)为用户提供信息服务,让使用不同语言的用户都能够从同个网站获得内容相同的信息。

多语言网站实现方案

1,静态:就是为每种语言分别准备一套页面文件,要么通过文件后缀名来区分不同语言,要么通过子目录来区分不同语言。

例如对于首页文件index_en.htm提供英语界面,index_gb.htm提供简体中文界面,index_big.htm提供繁体中文界面,或者是en/index.htm提供英语界面,gb/index.htm提供简体中文界面,big/index.htm提供繁体中文界面,一旦用户选择了需要的语言后,自动跳转到相应的页面,首页以下其他链接也是按照同样方式处理。从维护的角度来看,通过子目录比通过文件后缀名来区分不同语言版本显得要简单明了。

2,动态:站点内所有页面文件都是动态页面文件(PHP,ASP等)而不是静态页面文件,在需要输出语言文字的地方统一采用语言变量来表示,这些语言变量可以根据用户选择不同的语言赋予不同的值,从而能够实现在不同的语言环境下输出不同的文字。

例如:语言变量ln_name,当用户选择的语言是英语时赋值为“Name”,当用户选择的语言是简体中文时赋值为“姓名”,这样就可以适应不同语言时的输出。

采用静态方式的优点是页面直接输出到客户端,不需要在服务器上运行,占用服务器的资源比较少,系统能够支持的并发连接数较多,缺点是要为每种语言制作一套页面文件,很多内容即使是和语言无关的也要分不同语言来存储,因此占用的存储空间较多。

采用动态方式和静态方式的优缺点正好相反,它的优点是动态页面文件只有一套,不同语言的文字使用语言变量来存储,和语言无关的内容只存储一份,占用的存储空间较少,并且扩展新语言比较容易,缺点需要在服务器上运行,然后把结果输入到客户端,占用服务器的资源比较多,系统能够支持的并发连接数较少。

动态数据存贮涉及的一些技术问题

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

1,在数据库级别支持多语言:为每种语言建立独立的数据库,不同语言的用户操作不同的数据库。

2,在表级别支持多语言:为每种语言建立独立的表,不同语言的用户操作不同的表,但是它们在同一个数据库中。

3,在字段级别支持多语言:在同一个表中为每种语言建立独立的字段,不同语言的用户操作不同的字段,它们在同一个表中。

由于数据库中有大量的信息(如标志,编码,数字等)是用于内部处理使用的,与语言无关的,因此在数据库级别支持多语言会导致空间的极大浪费,在字段级别支持多语言最大的问题是一旦需要支持新的语言,由于需要修改表结构,维护起来非常麻烦,可扩展性不好。

相比之下,在表级别支持多语言比较好,因为并不是所有的表都需要支持多语言,对于与语言无关的表,不同语言的用户共用一套,那些和语言相关的表根据支持语言的种类来建立,不同语言的用户存取访问不同的表格。这样使得维护简单,节省了存储空间,即使是扩展起来也比较方便,只要把需要支持多语言的表,多建立一套即可。

还需要注意的问题是:有些表中某些字段是不同语言版本的表共享的(例如库存量),由于各种语言的表之间的相对独立性,使得数据共享有些困难。解决的方法有两个:

1,不同语言的表的共享字段同步:也就是说,只要修改了其中一个表的共享字段,其他语言表中该字段也作相应改变,实际上当不同语言的用户同时访问时处理还是比较麻烦的,并且扩充新语言时修改工作比较大。

2,增加一个新的表:把所有语言共享的字段(例如货物编号,产地编码等)全部放在这个表,支持多语言的表只存放与各种语言相关的字段。不同语言的用户在使用数据库时,需要操作两个数据表。
比较而言,第二种方法比较简单,并且效率比较高,维护也比较方便。

应用字符集的选择

一个定位于不同语言国家的企业网站势必需要提供多种语言版本的产品和销售信息来满足其世界各地使用不同语言的客户和合作伙伴,其中包括法语、德语、意大利语、葡萄牙语、西班牙语、阿拉伯语等等。但有一个问题却极易被网站设计者们所忽略。这就是网站的字符集设置问题。

一般我们使用的是简体中文(GB2312)字符集,而对多语言网站来说,中文字符集却可能会使你辛辛苦苦的努力功亏一篑。原因很简单:就是这个毫不起眼的小小字符集在作怪。

计算机应用领域中存在着几十种互不相同的字符集,而不同语言客户在浏览不同语言网页时,往往会因为相互间所使用字符集无法兼容而出现乱码情况。我们在浏览国外一些网站时,往往也会出现为了能正常地看到网站上的信息而不得不在各种字符集之间来回切换的情况。

试想一下:如果一个网站提供了中,英,法,德等多种语言版本的内容,内容全之又全,设计美仑美奂。我们在中文编码环境下浏览这些非中文版本的页面觉得非常完美,现在一个法国客户对你的产品发生了兴趣,当他进到法语版面一看—乱码多多,甚至可能整个版面都一塌里糊涂。你的网站再下大工夫又有什么意义呢?

所以对提供了多语言版本的网站来说,Unicode字符集应该是最理想的选择。它是一种双字节编码机制的字符集,不管是东方文字还是西方文字,在Unicode中一律用两个字节来表示,因而至少可以定义65536个不同的字符,几乎可以涵盖世界上目前所有通用的语言的每一种字符。 所以在设计和开发多语言网站时,一定要注意先把非中文页面的字符集定义为“utf-8”格式。

这一步非常重要,原因在于若等页面做好之后再更改字符集设置,可说是一件非常非常吃力不讨好的工作,有时候甚至可能需要从头再来,重新输入网站的文字内容。

HTML中的META标签:

<META HTTP-EQUIV=“Content-Type” CONTENT=“text/html; CHARSET=字符集">

不写,根据浏览器默认字符集显示
charset=gb2312  简体中文 
charset=big5 繁体中文  
charset=EUC_KR  韩语 
charset=Shift_JIS 或 EUC_JP 日语 
charset= KOI8-R / Windows-1251 俄语 
charset=iso-8859-1  西欧语系(荷兰语,英语,法语,德语,意大利语,挪威语,葡萄牙语,瑞士语.等十八种语言)http://www.microsoft.com/
charset=iso-8859-2  中欧语系
charset=iso-8859-5 斯拉夫语系(保加利亚语,Byelorussian语,马其顿语,俄语,塞尔维亚语,乌克兰语等)
charset=uft-8  unicode多语言

ASP与脚本引擎页码的概念
由于我们传统使用的内码像Big5,GB2312与unicode并不是一一对应,故两者之间的转换要靠codepage(页码)来实现
<%@ Language=VBScript CodePage=xxx%>

不写,根据服务器端解析引擎默认代码页自动解析并返回浏览器。
如果制作的网页脚本与WEB服务端的默认代码页不同,则必须指明代码页:
codepage=936 简体中文GBK
codepage=950 繁体中文BIG5
codepage=437 美国/加拿大英语
codepage=932 日文
codepage=949 韩文
codepage=866 俄文
codepage=65001 unicode UFT-8

多语言网站开发 不完全技术分析收录相关推荐

  1. python写炒股软件_在线配资,【原创】用python开发股票自动技术分析的软件(

    一.准备一个沪深股市的股票代码和简称的对照表,存在csv文件或者txt文件中. 二.读取这个文件,循环将所有股票的历史数据都下载到本地,保存为名字为股票代码的csv文件. 三.逐个读取所有这些csv文 ...

  2. 为视频直播网站开发选择最佳技术

    在今天的数字时代,随着人们越来越多地倾向于观看在线视频,视频直播网站开发已经成为了一项非常有前途的技术.无论是为了提供娱乐.教育还是商业目的,视频直播网站开发都是一个非常重要的领域. 在视频直播网站开 ...

  3. python股票分析源码_用python开发股票自动技术分析的软件

    一.配置环境 python是个强大的工具,还有很多插件包可以用,所以完全可以考虑用python来编程实现股票的自动技术分析. 第一步就是实现股票历史数据的获取,这个有安装包TuShare可以用.首先是 ...

  4. 网站开发需要哪些技术_网站建设需要掌握哪些技术

    网站搭建原理 1.认识网站虚拟空间:虚拟空间是用来存放网站文件的.如:图片信息,html文件,php文件等.虚拟空间相当于一个硬盘空间,只是这个空间可以被互联网用户以网址或IP地址的形式访问. 网站搭 ...

  5. 用C#开发网络防火墙技术分析

    N-Byte网络守望者是一款单机版网络安全工具,简言之,就是一个用.NET开发的个人版防火墙.在N-Byte网络守望者1.0版的开发中,使用了NDIS Hook Driver技术来实现网络封包过滤功能 ...

  6. 下列不属于C语言程序开发步骤,程序设计技术(C语言)-中国大学mooc-题库零氪...

    第1章 程序设计基础 第1章 选择题 1.以下不属于算法基本特征的是( ). A.有穷性 B.有效性 C.可行性 D.有一个或多个输出 2.N-S图与传统流程图比较,主要优点是( ) A.杜绝了程序的 ...

  7. HTTP Live Streaming直播源代码软件开发(iOS直播)技术分析与实现

    HLS技术要点分析 HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备( ...

  8. 网站开发流程-WEB开发的流程

    网站开发流程-WEB开发的流程 web开发流程概括 1.)项目的角色划分 如果不包括前期和后期的市场推广及销售人员,开发团队一般可以划分为项目负责人.程序员.美工三个角色. 项目负责人习惯称为项目经理 ...

  9. 多语言网站解决方案 v2.00

    转自:http://nightcat.512j.com/xoops/modules/wordpress/index.php?p=129 ################################ ...

最新文章

  1. oracle10g应用,2017企业级Oracle10g数据库管理与应用
  2. xcode4 语法高亮和自动补全失效的解决办法
  3. 2.12linux csf 防火墙 防止少量的ddos cc攻击
  4. python 随机数_python项目实战:实现蒙特卡罗方法,求物体阴影面积
  5. 华为手机打开日志输出的几种方法
  6. Quartus 实现D触发器及仿真
  7. 卷积编码的原理与MATLAB及FPGA实现
  8. 地摊经济:78岁高龄老人摆地摊的背后,蕴藏着9000万老年再就业市场的巨大商机
  9. 当你压力大到快崩溃时,不要跟任何人说,也不要觉得委屈
  10. 几款支持国标GB28181的平台以及视频监控设备接入的配置方法(Web端无插件播放)
  11. 平面桁架静力计算程序
  12. 《终结拖延症》读书笔记,作者威廉·克瑙斯
  13. 协方差,协方差矩阵,相关系数
  14. 华为HCIA-datacom 学习笔记11——AAA原理与配置
  15. 《海底捞你学不会》学什么
  16. unity lookat导致物体颠倒怎么解决_爆款的诞生:《胡闹厨房2》的多人游戏模式解决方案...
  17. 《西湖梦》 - 洛天依 乐正绫 :OI版
  18. 蔡康永的说话之道1-透过说话,懂得把别放在心上
  19. HDU - 1982 Kaitou Kid - The Phantom Thief
  20. java剪切_java---头像剪切功能

热门文章

  1. Kali安装虚拟机遇到的问题
  2. Java设计模式之七大结构型模式(附实例和详解)
  3. Python笔记(七)
  4. Docker容器技术-基础与架构
  5. UIImagePickerController
  6. vs2005部署报表服务器项目老提示输入用户名密码解决办法
  7. linux IP DNS 配置
  8. python创建目录保存文件
  9. ORACLE 日期加减操作
  10. Spring Boot WebFlux 上手教程