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