如何建设一个多语言版的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!


猜你喜欢
- 概述:可以将.py源代码转换成无需源代码的可执行文件(直接就可以运行的程序)因为有的时候Windows,Mac,Linux系统上并没有安装P
- 列表(list)和元组(tuple)的一些基础list和tuple都是一个可以放置任意数据类型的有序集合,都是既可以存放数字、字符串、对象等
- time库是python中处理时间的标准库。计算机时间的表达:time()、ctime()、gmtime();提供获取系统时间并格式化输出功
- <select id = "cityList" > <select id =
- 在JavaScript中我们需要用到trim的地方很多,但是JavaScript又没有独立的trim函数或者方法可以使用,所以我们需要自己写
- div+css实现圆角边框,在网络上查看了一下,很多都是实现圆角的矩形的方法,我在这里介绍的是实现圆角矩形边框的方法。用代码说明问题:<
- 如果你需要一个PDF文件合并工具,那么本文章完全可以满足您的要求。哈喽,大家好呀,这里是滑稽研究所。不多废话,本期我们利用Python合
- 如下所示:import tensorflow as tftfe = tf.contrib.eagertf.enable_eager_exec
- 文 | 潮汐来源:Python 技术「ID: pythonall」学习Python是做数分析的最基础的一步,数据分析离不开数据可视
- 临近下班的时候,突然想到统计热门文章的问题。以前我所知道的热门文章统计,基本有这么几种:按点击数排序 该方法最大的问题在于热门的文章会越来越
- 背景小程序在网络层提供的API是能够完成一个程序与服务端交互的完整链路,但需要大量的定制化代码,才能实现请求拦截和响应拦截,不太符合大多数开
- <?php /* +---------------------------------------------------------
- 今天借助ChatGPT完成我们这步骤,主要涉及三个问题:1. Python怎么读取.env配置文件,实现一个代码封装2. Python怎么读
- 目录初期操作分析参数分析salt、signPython代码运行效果初期操作打开有道翻译界面—F12—Network—在翻译框中输入'
- 最近游戏项目在多个国家上线,每个国家都对应两份儿svn目录(一份是本地策划目录,一份是线上目录)。于是乎维护变得很烦躁。需要先更新本地策划s
- 本文实例讲述了js简单实现Select互换数据的方法。分享给大家供大家参考。具体如下:这里基于javascript实现两个Select互换数
- 优先级两者放置相同条件,之所以可能会导致结果集不同,就是因为优先级。on的优先级是高于where的。首先明确两个概念:LEFT JOIN 关
- 1 squeeze(): 去除size为1的维度,包括行和列。至于维度大于等于2时,squeeze()不起作用。行、例:>>&g
- 问题:pycharm无法调用pip安装的包原因:pycharm没有设置解析器解决方法:打开pycharm->File->Sett
- 要找到最早的活动事务,可以使用DBCC OPENTRAN命令。详细用法见MSDN:http://msdn.microsoft.com/zh-