ASP利用Google实现在线翻译功能
2018-09-06 13:20
有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页多种语言之间的转换。
复制代码 代码如下:
<form>
<selectname=lan>
<optionvalue=ende>英语翻译成德语</option>
<optionvalue=enes>英语翻译成西班牙语</option>
<optionvalue=enfr>英语翻译成法语</option>
<optionvalue=enit>英语翻译成意大利语</option>
<optionvalue=enpt>英语翻译成葡萄牙语</option>
<optionvalue=enja>英语翻译成日语BETA</option>
<optionvalue=enko>英语翻译成朝鲜语BETA</option>
<optionvalue=enzh-CN>英语翻译成中文(简体)BETA</option>
<optionvalue=deen>德语翻译成英语</option>
<optionvalue=defr>德语翻译成法语</option>
<optionvalue=esen>西班牙语翻译成英语</option>
<optionvalue=fren>法语翻译成英语</option>
<optionvalue=frde>法语翻译成德语</option>
<optionvalue=iten>意大利语翻译成英语</option>
<optionvalue=pten>葡萄牙语翻译成英语</option>
<optionvalue=jaen>日语翻译成英语BETA</option>
<optionvalue=koen>朝鲜语翻译成英语BETA</option>
<optionvalue=zh-CNen>中文(简体)翻译成英语BETA</option>
<inputstyle=FONT-SIZE:12pxtype=buttonvalue=Go->name=Button1onClick=
javascript:window.open
(translate.asp?urls=+document.location+&lan=+lan.value,_self,)>
</select>
</form>
lan.htm中的内容用来选择要翻译的语言包括原来的语言和要翻译成的语言。我们只需要将lan.htm中的内容拷到提供多语言翻译的页面中就可以了。
复制代码 代码如下:
<html>
<head>
<title>在线翻译</title>
<metahttp-equiv=Content-Typecontent=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=postaction=translate.asp>
<inputtype=textname=urlssize=150value=<%=urlpage%>>
<inputtype=hiddenname=lanvalue=<%=lan%>>
<inputtype=submitvalue=submit>
</form>
<%
dimtransURL
transURL=
=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
上一篇:ASP脚本组件实现服务器重启