有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好google提供了语言工具功能,下面介绍如何利用它来实现网页多种语言之间的转换。
注:转载请注明出处
lan.htm
<form>
<select name="lan">
<option value="ende">英语 翻译成 德语</option>
<option value="enes">英语 翻译成 西班牙语</option>
<option value="enfr">英语 翻译成 法语</option>
<option value="enit">英语 翻译成 意大利语</option>
<option value="enpt">英语 翻译成 葡萄牙语</option>
<option value="enja">英语 翻译成 日语 beta</option>
<option value="enko">英语 翻译成 朝鲜语 beta</option>
<option value="enzh-cn" >英语 翻译成 中文(简体) beta</option>
<option value="deen">德语 翻译成 英语</option>
<option value="defr">德语 翻译成 法语</option>
<option value="esen">西班牙语 翻译成 英语</option>
<option value="fren">法语 翻译成 英语</option>
<option value="frde">法语 翻译成 德语</option>
<option value="iten">意大利语 翻译成 英语</option>
<option value="pten">葡萄牙语 翻译成 英语</option>
<option value="jaen">日语 翻译成 英语 beta</option>
<option value="koen">朝鲜语 翻译成 英语 beta</option>
<option value="zh-cnen">中文(简体) 翻译成 英语 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>
translate.asp实现翻译功能,这是利用google的语言工具实现的。
注意,因为提供多语言支持,所以translate.asp文件所用的编码是支持所有字符的"utf-8"
事例:http://www.tot.name/3.htm
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器