asp+|xml|網站|多語言
建立兩個儲存語言項的xml檔案,放到Languages目錄下:
zh-cn.xml
以下是引用片段: <?xml version="1.0" encoding="utf-8"?> <Languages> <aboutus>關於我們</aboutus> <product>產品展示</product> </Languages> |
english.xml
以下是引用片段: <?xml version="1.0" encoding="utf-8"?> <Languages> <aboutus>About us</aboutus> <product>Products</product> </Languages> |
公用函數(方法)Functions.asp,放到Comm目錄下:
以下是引用片段: <% ’------------------- ’函數名:getLang(); ’參數Lang:當前語言; ’參數Litem:設定的語言項; ’樣本:Call getLang("zh-cn","aboutus"); ’Author:Huerreson,huerreson@msn.com ’------------------- Function getLang(ByVal Lang,Litem) Dim xmlDom If objCheck("Microsoft.XMLDOM") then Set xmlDom = Server.CreateObject("Microsoft.XMLDOM") elseif objCheck("Microsoft.XMLDOM") then Set xmlDom = Server.CreateObject("MSXML2.DOMDocument") else Response.Write("伺服器不支援’Microsoft.XMLDOM’及’MSXML2.DOMDocument’,無法使用本功能") End if xmlDom.async = false xmlDom.load(Server.MapPath("Languages/"& Lang &".xml")) Response.Write(xmlDom.documentElement.selectSingleNode(Litem).text) Set xmlDoc = Nothing Set xmlDom = Nothing End Function ’------------------- ’函數名:objCheck(); ’參數ObjName:對象名稱; ’樣本:Call objCheck("Microsoft.XMLDOM"); ’Author:Huerreson,huerreson@msn.com ’------------------- Function objCheck(ObjName) on error resume next objCheck = false Set Obj = Server.CreateObject (ObjName) If -2147221005 <> Err then objCheck = true end if Set Obj = nothing End Function %> |
asp+xml實現多語言網站應用執行個體:
以下是引用片段: <!-- ==多語言版本解決方案== Author:Huerrseon,huerreson@msn.com --> <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!--#include file="Comm/functions.asp" --> <style type="text/css"> #NavMenu{border-bottom:1px dashed #000;} </style> <% Dim LangQuery LangQuery = lCase(Request.QueryString("lang")) If Not (IsNull(LangQuery) or LangQuery = "") Then LangQuery = LangQuery else LangQuery = "default" End if %> <div id="NavMenu"><%Call getLang(LangQuery,"aboutus")%></div> <div id="SwitchLangBar">語言切換<a href="?lang=zh-cn">簡體中文</a>--<a href="?lang=english">Englsih</a></div> |