`
long5534
  • 浏览: 53026 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

多语言网站开发--不完全技术分析收录

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

多语言网站实现方案

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,在字段级别支持多语言:在同一个表中为每种语言建立独立的字段,不同语言的用户操作不同的字段,它们在同一个表中。

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

相比之下,在表级别支持多语言比较好,因为并不是所有的表都需要支持多语言,对于与语言无关的表,不同语言的用户共用一套,那些和语言相关的表根据支持语言的种类来建立,不同语言的用户存取访问不同的表格。这样使得维护简单,节省了存储空间,即使是扩展起来也比较方便,只要把需要支持多语言的表,多建立一套即可。
[page][/page]
还需要注意的问题是:有些表中某些字段是不同语言版本的表共享的(例如库存量),由于各种语言的表之间的相对独立性,使得数据共享有些困难。解决的方法有两个:

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


建议采用utf8的静态和动态文档。即:
程序代码 程序代码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
[page][/page]
分享到:
评论

相关推荐

    软件开发人员必须的技术类网站

    ### 软件开发人员必须的技术类网站 在软件开发领域,掌握丰富的资源和技术文档对于提升个人技能、解决实际问题有着不可估量的作用。本文将详细介绍一系列对软件开发者非常有用的网站,涵盖各种语言和技术栈。 ####...

    PHP实例开发源码-小刀php网站自动收录 UTF-8.zip

    UTF-8是Unicode字符集的一种编码方式,支持世界上几乎所有的字符,避免了多语言环境下出现乱码的问题。在源码中使用UTF-8编码,意味着程序可以正确处理各种语言的文本。 4. **文件`使用须知.txt`**: 这个文件很...

    PHP实例开发源码—小刀php网站自动收录UTF-8.zip

    "小刀"可能是一个项目名称或者是开发者使用的别名,而"UTF-8"则表明该程序设计时考虑到了多语言环境,特别是那些使用非英文字符的网站。 【标签】"PHP"明确了这个项目的核心技术,PHP是一种广泛应用于Web开发的...

    PHP实例开发源码-PHP多站点批量收录查询.zip

    【PHP多站点批量收录查询】是一个实用的PHP开发实例,主要目标是实现对多个网站的搜索引擎收录情况进行批量查询。在互联网营销和SEO优化中,了解网站的搜索引擎收录情况至关重要,因为这直接影响到网站的可见度和...

    基于PHP的小刀php网站自动收录UTF-8.zip

    "小刀"可能是该程序的昵称或者作者的名字,而"UTF-8"则表示该程序支持多语言环境,特别是中文,因为UTF-8是广泛使用的多字节字符编码,能容纳几乎所有的全球字符集。 【描述】"基于PHP的小刀php网站自动收录UTF-8....

    基于PHP的小刀php网站自动收录 UTF-8.zip

    这表明该收录系统设计时考虑到了国际化和多语言支持,可以处理包含各种语言的网页。 【标签】"PHP" 提示我们这个项目的核心技术是PHP,这是一种广泛应用的开源服务器端脚本语言,尤其适合Web开发。PHP可以轻松地...

    小刀php网站自动收录UTF-8.zip

    总结起来,"小刀php网站自动收录UTF-8.zip"是一个帮助网站优化SEO的PHP工具,它包含了自动提交页面到搜索引擎的功能,同时支持UTF-8编码以适应多语言环境。通过分析和理解其内部结构,我们可以进一步定制和优化它来...

    VC开发经典模式与实例.rar

    本书是一部Visual C++项目开发的技术书籍。全书内容深入浅出,首先简单介绍了Visual C++ 开发环境及C++语言的基本知识;然后介绍了现代软件工程的基本思想,使读者能够在一个比较高的层面上对Visual C++编程与软件...

    PHP实例开发源码-Google近日收录查询精确版php.zip

    8. SEO分析:通过这个实例,开发者可以学习如何获取和分析网站在Google搜索引擎中的表现,从而优化网站的SEO策略,提高网站在搜索结果中的排名。 9. 安全性:考虑到可能会涉及到用户的输入和API密钥,开发者需要...

    ChatGPT发展历程、原理、技术架构详解和产业未来 (收录于GPT-4_ChatGPT技术与产业分析) - 知乎.pdf

    ChatGPT是由OpenAI开发的一款基于人工智能技术的语言模型,它在2022年11月底推出后迅速引起了全球的关注。这款技术的核心在于其能够进行自然、流畅的对话,仿佛是一个真正的人类智能助手。ChatGPT的发展历程是AI技术...

    2010年SCI收录期刊列表

    2010年的SCI数据库收录了众多国际顶尖的学术期刊,涵盖了科学、技术、医学、工程等多个领域,为全球科研人员提供了宝贵的资源。这些期刊不仅代表了各自领域的最高研究水平,也为学者们提供了一个展示研究成果、促进...

    毕业设计-动态网站开发与设计.doc

    9. 多语言支持:支持简体、繁体、英文。 10. 源代码开放:用户可根据自己的需求对 ECShop 进行定制,扩展。 在本毕业设计中,我们还将对 ECShop 的后台管理和购物流程进行详细的分析和设计,旨在提高用户体验和...

    C#查网址收录

    总的来说,“C#查网址收录”工具结合了网络请求、数据解析、文件操作等多方面的C#技术,为用户提供了一种便捷的方式来监控和分析网站在百度的收录情况,对于SEO优化和网站管理具有很高的价值。通过学习和理解这个...

    怎么开发手机网站手机网站开发教程.docx

    手机网站开发是一个不断演变的领域,随着移动设备的普及和技术的进步,越来越多的企业和个人选择构建针对手机用户的网站。本文将深入探讨手机网站开发的关键点、优化技巧以及需要注意的问题。 首先,让我们了解一下...

    最新,最全php学习和资源网站收录,用了2年时间收录的

    随着互联网技术的快速发展,PHP 作为一种广泛使用的开源脚本语言,在 Web 开发领域占据了重要地位。对于初学者和专业人士而言,寻找全面、实用的学习资料至关重要。本文将基于一份经过两年时间精心收集整理的 PHP ...

    基于PHP的网站收录查询工具php版.zip

    【标题】:“基于PHP的网站收录查询工具php版.zip”是一个使用PHP编程语言开发的工具,主要用于查询网站在搜索引擎中的收录情况。这个工具可能包含了PHP脚本和其他必要的资源文件,帮助开发者或SEO优化人员快速获取...

    站长亲测版国际网站收录展示导航系统v3.1开源版导航站源码带有安装教程.txt

    综上所述,站长亲测版国际网站收录展示导航系统V3.1是一个功能强大且易于使用的开源项目,它不仅提供了丰富的导航管理功能,还支持多语言和高度可定制化,非常适合个人站长或小型团队用来构建自己的导航网站。...

    源代码-Google近日收录查询系统 build 20220506.zip

    【标题】"源代码-Google近日收录查询系统 build 20220506.zip" 描述了一个软件开发项目,这个项目旨在构建一个能够查询Google搜索引擎最近收录情况的系统。该系统的版本号为20220506,表明它是在2022年5月6日创建或...

Global site tag (gtag.js) - Google Analytics