文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
asp中有关字符编码转换的几个函数
绝妙的asp生成静态页面html函数
Asp计算页面执行时间
一个简单的用存储过程分页
将asp页面转换成htm页面
ASP网站漏洞解析及黑客入侵防范方法
URL编码与SQL注入
几种常用排序算法(asp)
ASP调用带参数存储过程的几种方式
实用的ASP连接数据库的函数
ASP如何获取真实IP地址
ASP中怎么实现SQL数据库备份、恢复
判断Cookies是否处于开启状态
怎样才能将服务器端文件夹下的文件,..
几行Asp代码实现防止表单重复提交
用ASP设计网站在线人数统计程序
asp论坛在线人数统计研究
如何用ASP远程在数据库中创建Table
用ASP调用SQL Server的视图和存储过程
Asp与XML的关系
ASP读取EXCEL
在ASP中使用Oracle数据库技巧
一个通过web.Mail发送邮件的类
几种打开记录集方式的比较
购物车范例(购物车页面 )
如何使用FSO搜索硬盘文件
GB码和BIG5码的互换技术
用ASP开发WEB日期选择器
一个投票系统的源程序(coveryourasp.c..
列出服务器上的打印机


技术教程 -> ASP教程 ->  
ASP程序界面的多语言支持
来源:转载   人气:689   录入时间:2007-11-8
     可能有的web应用程序,需要多语言支持,例如,讨论组,既有中文界面,以适合国人使用的方便,又需要英文界面,以满足国际化的需要。我想,似乎没有必要为每一个语言都写一个版本,这不仅比较繁琐,而且以后程序升级就必须修改所有版本的程序。熟悉vc++程序的朋友一定知道通常windows应用程序的国际化手段都是通过rc文件来解决的。只要重新加入不同语言版本的rc文件编译一下就行了。
    asp程序不能编译也不需编译。我于是开始考虑使用数据库,将ASP程序中使用到的提示信息/甚至图片的URL等都放进数据库,并有不同的字段。
   
   (1)数据库表设计
    表STRINGTABLE
    id int
    ch_str varchar 255
    jp_str varchar 255
    en_str varchar 255
    ...................其他语言的字段
   
   (2)inc文件STRINGTABLE.INC
   
    const MAX_STR=100 '根据ID的最大值
    const LANG_CH=1
    const LANG_JP=2
    const LANG_EN=3
    dim strArr
    dim strRS
    dim strSql
   
    if not isArray(APPLICATION("constStr")) then
    strSql="select * from W_STRINGTABLE"
    set strRS=conn.execute(strSql)
    redim strArr(3,MAX_STR)
    do while not strRS.eof
    strArr(LANG_CH,clng(strRS("ID")))=strRS("CH_STR")
    strArr(LANG_JP,clng(strRS("ID")))=strRS("JP_STR")
    strArr(LANG_EN,clng(strRS("ID")))=strRS("EN_STR")
    strRS.movenext
    loop
    APPLICATION.lock
    APPLICATION("constStr")=strArr
    APPLICATION.unlock
    strRs.close
    else
    strArr=APPLICATION("constStr")
    end if
   
   (3)应用示例
    const LANG_CH,STR_CONFIRM_OVERWRITE=1234
    ...
    response.write strArr(LANG_CH,STR_CONFIRM_OVERWRITE)
    response.write strArr(LANG_JP,STR_CONFIRM_OVERWRITE)
   
    假设有程序user.asp
    调用方式如下
    user.asp?language=en (中文)
    user.asp?language=ch (E文)
   
    '-----------user.asp
    dim lang
    if not(isnull(request("language")) or isempty(request("language")) or (request("language")="") ) then
    if request("language")="en" then
    lang=LANG_EN
    elseif request("language")="jp" then
    lang=LANG_JP
    else
    lang=LANG_CH
    end if
    else
    lang=LANG_CH
    end if
    '..................
    response.write strArr(lang,STR_CONFIRM_OVERWRITE)
   
    注:
    通过meta tag可以设置html页面的语言代码。
   中文gb3212-80
   ="Content-Type" content="text/html; charset=x-sjis"> 日文Shift-jis
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987