ASP程序中提供在線(xiàn)文章翻譯功能
...
有時(shí)候想為我們的網(wǎng)頁(yè)提供多語(yǔ)言支持,如果一種語(yǔ)言用一張網(wǎng)頁(yè)來(lái)做實(shí)在太麻煩了,幸好Google提供了語(yǔ)言工具功能,下面介紹如何利用它來(lái)實(shí)現網(wǎng)頁(yè)多種語(yǔ)言之間的轉換。
lan.htm
<form> <select name="lan"> <option value="en|de">英語(yǔ) 翻譯成 德語(yǔ)</option> <option value="en|es">英語(yǔ) 翻譯成 西班牙語(yǔ)</option> <option value="en|fr">英語(yǔ) 翻譯成 法語(yǔ)</option> <option value="en|it">英語(yǔ) 翻譯成 意大利語(yǔ)</option> <option value="en|pt">英語(yǔ) 翻譯成 葡萄牙語(yǔ)</option> <option value="en|ja">英語(yǔ) 翻譯成 日語(yǔ) BETA</option> <option value="en|ko">英語(yǔ) 翻譯成 朝鮮語(yǔ) BETA</option> <option value="en|zh-CN" >英語(yǔ) 翻譯成 中文(簡(jiǎn)體) BETA</option> <option value="de|en">德語(yǔ) 翻譯成 英語(yǔ)</option> <option value="de|fr">德語(yǔ) 翻譯成 法語(yǔ)</option> <option value="es|en">西班牙語(yǔ) 翻譯成 英語(yǔ)</option> <option value="fr|en">法語(yǔ) 翻譯成 英語(yǔ)</option> <option value="fr|de">法語(yǔ) 翻譯成 德語(yǔ)</option> <option value="it|en">意大利語(yǔ) 翻譯成 英語(yǔ)</option> <option value="pt|en">葡萄牙語(yǔ) 翻譯成 英語(yǔ)</option> <option value="ja|en">日語(yǔ) 翻譯成 英語(yǔ) BETA</option> <option value="ko|en">朝鮮語(yǔ) 翻譯成 英語(yǔ) BETA</option> <option value="zh-CN|en">中文(簡(jiǎn)體) 翻譯成 英語(yǔ) BETA</option> <input style="FONT-SIZE: 12px" type="button" value="Go->" name="Button1" onClick="javascript:window.open(’translate.asp?urls=’+document.location+’&lan=’+lan.value,’_self’,’’)"> </select> </form> |
lan.htm中的內容用來(lái)選擇要翻譯的語(yǔ)言包括原來(lái)的語(yǔ)言和要翻譯成的語(yǔ)言。我們只需要將lan.htm中的內容拷到提供多語(yǔ)言翻譯的頁(yè)面中就可以了。
translate.asp
<html> <head> <title>在線(xiàn)翻譯</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ’on error resume next ’ 如果網(wǎng)速很慢的話(huà),可以調整以下時(shí)間。單位秒 Server.ScriptTimeout = 999999 ’======================================================== ’字符編碼函數 ’======================================================== Function BytesToBstr(body,code) dim objstream set objstream = Server.CreateObject("adodb.stream") objstream.Type = 1 objstream.Mode =3 objstream.Open objstream.Write body objstream.Position = 0 objstream.Type = 2 objstream.Charset =code BytesToBstr = objstream.ReadText objstream.Close set objstream = nothing End Function ’取行字符串在另一字符串中的出現位置 Function Newstring(wstr,strng) Newstring=Instr(lcase(wstr),lcase(strng)) if Newstring<=0 then Newstring=Len(wstr) End Function ’替換字符串函數 function ReplaceStr(ori,str1,str2) ReplaceStr=replace(ori,str1,str2) end function ’===================================================== function ReadXml(url,code,start,ends) set oSend=createobject("Microsoft.XMLHTTP") SourceCode = oSend.open ("GET",url,false) oSend.send() ReadXml=BytesToBstr(oSend.responseBody,code ) if(start="" or ends="") then else start=Newstring(ReadXml,start) ReadXml=mid(ReadXml,start) ends=Newstring(ReadXml,ends) ReadXml=left(ReadXml,ends-1) end if end function dim urlpage,lan urlpage=request("urls") lan=request("lan") %> <form method="post" action="translate.asp"> <input type="text" name="urls" size="150" value="<%=urlpage%>"> <input type="hidden" name="lan" value="<%=lan%>"> <input type="submit" value="submit"> </form> <% dim transURL transURL="http://216.239.39.104/translate_c?hl=zh-CN&ie=UTF-8&oe=UTF-8&langpair="&server.URLEncode(lan)&"&u="&urlpage&"&prev=/language_tools" if(len(urlpage)>3) then getcont=ReadXml(transURL,"gb2312","","") response.Write(getcont) end if %> </body> </html> |
translate.asp實(shí)現翻譯功能,這是利用google的語(yǔ)言工具實(shí)現的。
注意,因為提供多語(yǔ)言支持,所以translate.asp文件所用的編碼是支持所有字符的"utf-8"
上一條:用ASP開(kāi)發(fā)試題庫與在線(xiàn)考試系統(八)
下一條:ASP字符串函數大全