如何建设一个多语言版的ASP网站?

来源:asp之家 时间:2009-11-26 20:36:00 

 

<ScriptRUNAT=SERVERLanguage=VBScript>
SubApplication_OnStart()
DimDictCommonStrings
DimDictSpecializedStrings
DimConn
DimrsCommonStrings
DimrsSpecializedStrings
SetDictCommonStrings=Server.CreateObject("Scripting.Dictionary")
SetDictSpecializedStrings=Server.CreateObject("Scripting.Dictionary")

接下来,我们把数据装入字典对象。通过遍历表,连接StringKey和StringLanguage,并把连接后的值作为字典的键值,来把StringHolder放在对应的字典数据区。实际中,数据库只在应用启动时被访问一次,其后ASP页面将从速度更快的字典对象读取所需数据:

SetConn=Server.CreateObject("ADODB.Connection")
Conn.ConnectionString="SomeConnectionString"
Conn.open
' 连接数据库
SetrsCommonStrings=Conn.Execute("SelectStringKey,StringHolderfromCommonStrings")
DountilrsCommonStrings.EOF
DictCommonStrings.AddrsCommonStrings("StringLanguage")&rsCommonStrings("StringKey")_
,rsCommonStrings("StringHolder")
rsCommonStrings.MoveNext
' 打开CommonStrings表,遍历所有记录并装入数据
Loop
SetrsSpecializedStrings=Conn.Execute("SelectStringKey,StringHolderfromSpecializedStrings")
DountilrsSpecializedStrings.EOF
DictSpecializedStrings.AddrsSpecializedStrings("StringLanguage")&_
rsSpecializedStrings("StringKey"),rsSpecializedStrings("StringHolder")
rsSpecializedStrings.MoveNext
' 打开SpecializedStrings表,遍历所有记录并装入数据
Loop
rsSpecializedStrings.Close
rsCommonStrings.Close
Conn.Close
SetrsSpecializedStrings=Nothing
SetrsCommonStrings=Nothing
SetConn=Nothing
EndSub
</Script>

 再次,我们就要在ASP页面引用文本和文件路径了。做好了前期工作,现在我们要在ASP页面引用已经实例化的字典对象中的文本以及文件路径。

1、我们需要需要获知当前用户使用的是何种语言(忙了半天,不就是为了这个嘛)。获知对方使用何种语言的方法有好几种,我们用的是从Request.Server.Variables取得该值的办法,把下列代码放入Session_Onstart事件处理过程:

<ScriptLanguage=VBScript>
SubSession_OnStart()
Session("Lang")=Request.Server.Variables("HTTP_ACCEPT_LANGUAGE")
EndSub
</Script>

2、再通过键值从字典对象取得对应的文本或图片文件路径。键值由语言前缀加名字组成,代码示例:

<HTML>
<PAlign=center>
<h1><%=DictSpecializedStrings.Item(Session("Lang")&"Confirmation")%></h1>
</P>
<PAlign=center>
<h5><%=DictSpecializedStrings.Item(Session("Lang")&"OrderDisclaimer")%></h5>
</P>
</HTML>

都做好了。

中文版浏览器:欢迎光临asp之家!

英文版浏览器:Welcome to Aspxhome.com!

标签:语言,asp,网站,字典对象,英文
0
投稿

猜你喜欢

  • 一个不错的javascript加密解密算法源码

    2010-03-28 13:12:00
  • 巧用overflow属性解决中间间距问题

    2007-12-08 20:26:00
  • SQL建立数据库及删除数据库命令

    2011-12-01 10:23:21
  • JS复制特定内容到粘贴板

    2011-04-02 11:09:00
  • MySQL中的字符串模式匹配

    2010-03-09 16:30:00
  • Oracle SQL性能优化系列学习一

    2010-07-26 13:14:00
  • javascript 获取中文字符串长度

    2009-10-18 12:06:00
  • asp中常用的字符串安全处理函数集合(过滤特殊字符等)

    2011-02-20 10:40:00
  • 讲解SQL Server危险扩展存储删除和恢复

    2008-12-09 14:30:00
  • ORACLE实例的后台进程

    2009-09-30 10:28:00
  • HTML5 Canvas 起步(2) - 路径

    2009-05-12 12:06:00
  • ASP连接MySQL数据库的方法

    2010-03-14 11:25:00
  • Dreamweaver MX 2004 试用心得

    2010-03-25 12:21:00
  • 分步启动数据库以重命名数据文件

    2009-03-25 12:33:00
  • Asp教程:Response对象

    2007-10-01 18:08:00
  • 在JScript中使用RecordSet对象的GetRows方法

    2008-01-16 13:12:00
  • SQL学习笔记一SQL基础知识

    2011-09-30 11:24:33
  • innerHTML 的一些问题

    2008-06-17 17:39:00
  • MySQL数据库生产环境的维护工作总结的经验

    2011-12-01 10:20:52
  • SEM之医疗网站跳出率 逼迫访客跳出网站的六宗罪

    2012-03-05 20:13:36
  • asp之家 网络编程 m.aspxhome.com