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

王朝asp·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页多种语言之间的转换。

lan.htm

<form><select name="lan"><option value="en|de">英语 翻译成 德语</option><option value="en|es">英语 翻译成 西班牙语</option><option value="en|fr">英语 翻译成 法语</option><option value="en|it">英语 翻译成 意大利语</option><option value="en|pt">英语 翻译成 葡萄牙语</option><option value="en|ja">英语 翻译成 日语 BETA</option><option value="en|ko">英语 翻译成 朝鲜语 BETA</option><option value="en|zh-CN" >英语 翻译成 中文(简体) BETA</option><option value="de|en">德语 翻译成 英语</option><option value="de|fr">德语 翻译成 法语</option><option value="es|en">西班牙语 翻译成 英语</option><option value="fr|en">法语 翻译成 英语</option><option value="fr|de">法语 翻译成 德语</option><option value="it|en">意大利语 翻译成 英语</option><option value="pt|en">葡萄牙语 翻译成 英语</option><option value="ja|en">日语 翻译成 英语 BETA</option><option value="ko|en">朝鲜语 翻译成 英语 BETA</option><option value="zh-CN|en">中文(简体) 翻译成 英语 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 objstreamset objstream = Server.CreateObject("adodb.stream")objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write bodyobjstream.Position = 0objstream.Type = 2objstream.Charset =codeBytesToBstr = objstream.ReadTextobjstream.Closeset objstream = nothingEnd 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 ifend functiondim urlpage,lanurlpage=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".

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航