|
有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页多种语言之间的转换。
作者:淘特网
出处:http://www.tot.name
注:转载请注明出处
lan.htm
<form> <select name="lan"> <option value="ende">英语 翻译成 德语</option> <option value="enes">英语 翻译成 西班牙语</option> <option value="enfr">英语 翻译成 法语</option> <option value="enit">英语 翻译成 意大利语</option> <option value="enpt">英语 翻译成 葡萄牙语</option> <option value="enja">英语 翻译成 日语 BETA</option> <option value="enko">英语 翻译成 朝鲜语 BETA</option> <option value="enzh-CN" >英语 翻译成 中文(简体) BETA</option> <option value="deen">德语 翻译成 英语</option> <option value="defr">德语 翻译成 法语</option> <option value="esen">西班牙语 翻译成 英语</option> <option value="fren">法语 翻译成 英语</option> <option value="frde">法语 翻译成 德语</option> <option value="iten">意大利语 翻译成 英语</option> <option value="pten">葡萄牙语 翻译成 英语</option> <option value="jaen">日语 翻译成 英语 BETA</option> <option value="koen">朝鲜语 翻译成 英语 BETA</option> <option value="zh-CNen">中文(简体) 翻译成 英语 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中的内容用来选择要翻译的语言包括原来的语言和要翻译成的语言。我们只需要将lan.htm中的内容拷到提供多语言翻译的页面中就可以了。
translate.asp
<html> <head> <title>在线翻译</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head>
<body> <% 'on error resume next ' 如果网速很慢的话,可以调整以下时间。单位秒 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实现翻译功能,这是利用google的语言工具实现的。
注意,因为提供多语言支持,所以translate.asp文件所用的编码是支持所有字符的"utf-8"
|