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


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

  lan.htm

  以下是引用片段:

<form>
<selectname="lan">
<optionvalue="en|de">英语翻译成德语</option>
 <optionvalue="en|es">英语翻译成西班牙语</option>
 <optionvalue="en|fr">英语翻译成法语</option>
 <optionvalue="en|it">英语翻译成意大利语</option>
 <optionvalue="en|pt">英语翻译成葡萄牙语</option>
 <optionvalue="en|ja">英语翻译成日语BETA</option>
 <optionvalue="en|ko">英语翻译成朝鲜语BETA</option>
 <optionvalue="en|zh-CN">英语翻译成中文(简体)BETA</option>
 <optionvalue="de|en">德语翻译成英语</option>
 <optionvalue="de|fr">德语翻译成法语</option>
 <optionvalue="es|en">西班牙语翻译成英语</option>
 <optionvalue="fr|en">法语翻译成英语</option>
 <optionvalue="fr|de">法语翻译成德语</option>
 <optionvalue="it|en">意大利语翻译成英语</option>
 <optionvalue="pt|en">葡萄牙语翻译成英语</option>
 <optionvalue="ja|en">日语翻译成英语BETA</option>
 <optionvalue="ko|en">朝鲜语翻译成英语BETA</option>
 <optionvalue="zh-CN|en">中文(简体)翻译成英语BETA</option>
 <inputstyle="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>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
</head>
<body>
<%
'onerrorresumenext
'如果网速很慢的话,可以调整以下时间。单位秒
Server.ScriptTimeout=999999
'========================================================
'字符编码函数
'========================================================
FunctionBytesToBstr(body,code) 
    dimobjstream 
    setobjstream=Server.CreateObject("adodb.stream") 
    objstream.Type=1 
    objstream.Mode=3 
    objstream.Open 
    objstream.Writebody 
    objstream.Position=0 
    objstream.Type=2 
    objstream.Charset=code
    BytesToBstr=objstream.ReadText 
    objstream.Close 
    setobjstream=nothing 
EndFunction 
'取行字符串在另一字符串中的出现位置
FunctionNewstring(wstr,strng) 
    Newstring=Instr(lcase(wstr),lcase(strng)) 
    ifNewstring<=0thenNewstring=Len(wstr) 
EndFunction 
'替换字符串函数
functionReplaceStr(ori,str1,str2)
ReplaceStr=replace(ori,str1,str2)
endfunction
'=====================================================
functionReadXml(url,code,start,ends)
setoSend=createobject("Microsoft.XMLHTTP")
SourceCode=oSend.open("GET",url,false) 
oSend.send()
ReadXml=BytesToBstr(oSend.responseBody,code)
if(start=""orends="")then
else
start=Newstring(ReadXml,start)
ReadXml=mid(ReadXml,start)
ends=Newstring(ReadXml,ends)
ReadXml=left(ReadXml,ends-1)
endif
endfunction
dimurlpage,lan
urlpage=request("urls")
lan=request("lan")
%>
<formmethod="post"action="translate.asp">
<inputtype="text"name="urls"size="150"value="<%=urlpage%>">
<inputtype="hidden"name="lan"value="<%=lan%>">
<inputtype="submit"value="submit">
</form>
<%
dimtransURL
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)
endif
%>
</body>
</html>
  translate.asp实现翻译功能,这是利用google的语言工具实现的。


  注意,因为提供多语言支持,所以translate.asp文件所用的编码是支持所有字符的"utf-8"

 


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3