网络编程
位置:首页>> 网络编程>> Asp编程>> 用ASP实现Google在线文章翻译的功能

用ASP实现Google在线文章翻译的功能

  发布时间:2008-10-11 13:55:00 

标签:翻译,语言,工具,google,asp

有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好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-&gt;" 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"

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com