利用ajax制作在线翻译聊天室

作者:baula84 来源:蓝色理想 时间:2007-12-28 21:44:00 

前几天同学要我帮他做个国际聊天室,要求能够将聊天的内容自动翻译成多国语言.本来想用worldlink的翻译服务,但是用ajax很难获得结果,后来偶想到用google的翻译服务了,用ajax获取翻译结果.

相关文章:Google发布网页在线翻译小工具

演示页面: www.goodeye.com.cn/login.aspx 大家用个123就可以登陆了

核心代码

function send(){
    if(document.getElementById("isTrans").checked){
        ajaxsend();
    
    }else{
        text=document.getElementById("content").value;
        send2DataBase(text);
    }
}
function ajaxsend(){
        text=encodeURI(document.getElementById("content").value);
        var langpair=document.getElementById("langpair").value;
        var hl=document.getElementById("hl").value;
        var file;
    file="123.asp?text="+ text + "&langpair=" + langpair + "&hl=" + hl;
    var objXmlHttp=null;
    if(window.XMLHttpRequest){
        objXmlHttp=new XMLHttpRequest();  
    }else if(window.ActiveXObject){
        objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
        
    }else
    {
        return;
    }
    objXmlHttp.onreadystatechange=function(){
        if(objXmlHttp.readystate==4){
            var strValue=objXmlHttp.responseText;
            if (strValue.length!=0){
            
                try{
                if(strValue.indexOf("<div id=result_box dir=ltr>")>0){
                    var msg=strValue.indexOf("<div id=result_box dir=ltr>")
                    var msg2=strValue.indexOf("</div></td></tr><tr><td id=submitcell>")
                    var result=strValue.substring(msg,msg2);
                    result=result.replace("<div id=result_box dir=ltr>","");
                    
        
                    send2DataBase(result)
                }
                
                }catch(e){
                    alert("翻译服务器设置发生改变!");
                
                }
                
                
                
                
                
            }
            else{
            }
        }
    }
    objXmlHttp.open ('GET', file, true);   
    objXmlHttp.send ('');   
}
  function send2DataBase(txtContent){
   if (txtContent == "") return;
   var user_to = document.getElementById("userlist").value;  //聊天对象
   var textcolor = document.getElementById("textcolor").value;  //颜色
   var expression = document.getElementById("expression").value;  //表情
   var isPublic = !(document.getElementById("isSecret").checked);  //是否密谈   
   
   //调用服务器端方法发送消息
   ChatRoom.SendMsg(txtContent, user_to, textcolor, expression, isPublic);
   
   //更新聊天内容显示
   var div = document.getElementById("chatcontent");
   div.innerHTML = ChatRoom.GetNewMsgString().value + div.innerHTML;
   
   //清空输入框
   document.getElementById("content").value = "";   
  }

123.asp源文件

<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
<%
dim text,langpair,hl
text=trim(request("text"))
langpair=request("langpair")
hl=request("hl")
if text="" and langpair="" and hl="" then
    response.write "don't break my heart!"
end if
dim htmls
text=server.Urlencode(text)
dim strUrl:strUrl="http://translate.google.com/translate_t?text="+text+"&langpair="+langpair+"&hl="+hl+"&oe=UTF8"
htmls=getHTTPPage(strUrl)
response.write htmls
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"UTF-8")
set http=nothing
if err.number<>0 then err.Clear
end function
Function BytesToBstr(body,Cset)
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 = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
%>



标签:翻译,聊天室,ajax,xmlhttp
0
投稿

猜你喜欢

  • Ie6不支持max的解决办法

    2008-12-31 13:11:00
  • SQL Server数据库连接查询的种类及其应用

    2009-01-06 11:28:00
  • XML编程实例:用ASP+XML打造留言本

    2008-05-04 13:37:00
  • window.open被浏览器拦截后的自定义提示

    2007-11-23 12:31:00
  • 用面包屑来简化多层的tabs

    2011-06-16 20:32:54
  • 用ASP实现Google在线文章翻译的功能

    2008-10-11 13:55:00
  • 设计和布局之间的思考

    2008-10-09 13:06:00
  • asp的access数据库备份 压缩 恢复及清理数据库函数

    2008-10-31 12:36:00
  • ASP使用MYSQL数据库全攻略

    2009-11-08 18:27:00
  • 如何编写一个基于WEB的文件查询系统?

    2009-11-08 18:55:00
  • Javascript的匿名函数

    2008-05-07 13:33:00
  • 100%全屏布局设计

    2009-05-15 12:24:00
  • 在FLASH中调用ASP的方法

    2009-03-09 18:32:00
  • SQL Server 2005 SSIS技巧:动态目的文件名

    2008-12-05 15:47:00
  • Asp用XMLHTTP实现QQ状态在线查询

    2007-10-22 17:46:00
  • Access中实现case when功能

    2009-04-28 13:02:00
  • 解读HTML:命名空间与字符编码

    2008-12-10 14:03:00
  • 如何不通过DSN访问SQL Server?

    2009-11-11 19:21:00
  • 分析SQL Server中数据库的快照工作原理

    2009-01-19 14:03:00
  • WEB2.0网页制作标准教程(7)CSS学习入门

    2007-12-13 13:12:00
  • asp之家 网络编程 m.aspxhome.com