ASP程式介面的多語言支援

來源:互聯網
上載者:User
程式 ASP程式介面的多語言支援

可能有的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頁面的語言代碼。
     <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80"> 中文gb3212-80
     <meta http-equiv</U>="Content-Type" content="text/html; charset=x-sjis"> 日文Shift-jis



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.