用ASP實現線上文章翻譯的功能

來源:互聯網
上載者:User

有時候想為我們的網頁提供多語言支援,如果一種語言用一張網頁來做實在太麻煩了,幸好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-8"



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.