«
ASP程序中提供在线文章翻译功能

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页多种语言之间的转换。</p><p>  lan.htm</p><p>  <code><form><br /><select name="lan"><br /><option value="en|de">英语 翻译成 德语</option><br /><option value="en|es">英语 翻译成 西班牙语</option><br /><option value="en|fr">英语 翻译成 法语</option><br /><option value="en|it">英语 翻译成 意大利语</option><br /><option value="en|pt">英语 翻译成 葡萄牙语</option><br /><option value="en|ja">英语 翻译成 日语 BETA</option><br /><option value="en|ko">英语 翻译成 朝鲜语 BETA</option><br /><option value="en|zh-CN" >英语 翻译成 中文(简体) BETA</option><br /><option value="de|en">德语 翻译成 英语</option><br /><option value="de|fr">德语 翻译成 法语</option><br /><option value="es|en">西班牙语 翻译成 英语</option><br /><option value="fr|en">法语 翻译成 英语</option><br /><option value="fr|de">法语 翻译成 德语</option><br /><option value="it|en">意大利语 翻译成 英语</option><br /><option value="pt|en">葡萄牙语 翻译成 英语</option><br /><option value="ja|en">日语 翻译成 英语 BETA</option><br /><option value="ko|en">朝鲜语 翻译成 英语 BETA</option><br /><option value="zh-CN|en">中文(简体) 翻译成 英语 BETA</option><br /><input style="FONT-SIZE: 12px" type="button" value="Go->" name="Button1" onClick="javascript:window.open(’translate.asp?urls=’+document.location+’&lan=’+lan.value,’_self’,’’)"><br /></select><br /></form> </code></p>
<p> </p>

   <p>  lan.htm中的内容用来选择要翻译的语言包括原来的语言和要翻译成的语言。我们只需要将lan.htm中的内容拷到提供多语言翻译的页面中就可以了。</p><p>  translate.asp</p><p>  <code><html><br /><head><br /><title>在线翻译</title><br /><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><br /></head><br /><body><br /><%<br />’on error resume next<br />’ 如果网速很慢的话,可以调整以下时间。单位秒<br />Server.ScriptTimeout = 999999<br />’========================================================<br />’字符编码函数<br />’========================================================<br />Function BytesToBstr(body,code)<br />dim objstream<br />set objstream = Server.CreateObject("adodb.stream")<br />objstream.Type = 1<br />objstream.Mode =3<br />objstream.Open<br />objstream.Write body<br />objstream.Position = 0<br />objstream.Type = 2<br />objstream.Charset =code<br />BytesToBstr = objstream.ReadText<br />objstream.Close<br />set objstream = nothing<br />End Function<br />’取行字符串在另一字符串中的出现位置<br />Function Newstring(wstr,strng)<br /> Newstring=Instr(lcase(wstr),lcase(strng))<br /> if Newstring<=0 then Newstring=Len(wstr)<br />End Function<br />’替换字符串函数<br />function ReplaceStr(ori,str1,str2)<br /> ReplaceStr=replace(ori,str1,str2)<br />end function<br />’=====================================================<br />function ReadXml(url,code,start,ends)<br /> set oSend=createobject("Microsoft.XMLHTTP")<br /> SourceCode = oSend.open ("GET",url,false)<br /> oSend.send()<br /> ReadXml=BytesToBstr(oSend.responseBody,code )<br /> if(start="" or ends="") then<br /> else<br />  start=Newstring(ReadXml,start)<br />  ReadXml=mid(ReadXml,start)<br />  ends=Newstring(ReadXml,ends)<br />  ReadXml=left(ReadXml,ends-1)<br /> end if<br />end function<br />dim urlpage,lan<br />urlpage=request("urls")<br />lan=request("lan")<br />%><br /><form method="post" action="translate.asp"><br /><input type="text" name="urls" size="150" value="<%=urlpage%>"><br /><input type="hidden" name="lan" value="<%=lan%>"><br /><input type="submit" value="submit"><br /></form><br /><%<br /> dim transURL<br /> 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"<br />  if(len(urlpage)>3) then<br />   getcont=ReadXml(transURL,"gb2312","","")<br />   response.Write(getcont)<br />  end if<br />%><br /></body><br /></html></code></p></p><p>  translate.asp实现翻译功能,这是利用google的语言工具实现的。</p><p>  注意,因为提供多语言支持,所以translate.asp文件所用的编码是支持所有字符的"utf-8".</p></p>