当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP程序界面的多语言支持

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

ASP程序界面的多语言支持


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 242 ::
收藏到网摘: n/a

        可能有的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="