• 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->" 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-
  • 相关阅读:
    2016-09-13面试记录
    javascript中的深度拷贝的实现过程及深拷贝的几种方法。
    javascript中的for in循环
    常见的兼容问题及其解决方法。
    一次清空所有数据方法
    数组排序
    css对齐 挖坑~
    css reset样式重置
    CSS 表单
    CSS 表格
  • 原文地址:https://www.cnblogs.com/MaxIE/p/333060.html
Copyright © 2020-2023  润新知