利用ajax制作在线翻译聊天室
作者:baula84 来源:蓝色理想 发布时间:2007-12-28 21:44:00
标签:翻译,聊天室,ajax,xmlhttp
前几天同学要我帮他做个国际聊天室,要求能够将聊天的内容自动翻译成多国语言.本来想用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
%>
0
投稿
猜你喜欢
- 多表操作 在一个数据库中,可能存在多个表,这些表都是相互关联的。我
- 在静态页面里需要显示浏览次数的地方加上这个:浏览次数:<SCRIPT language='javascript
- 最近的一个页面中碰到的,本来想用 border 来模拟设计图的虚线效果,但是很明显 border 效果不如设计图来的好看。顺便研究了下 da
- Oracle客户端NLS_LANG设置 OracleWindowsMicrosoftUnixBash 1. NLS_LANG 参数组成 NL
- asp如何将RGB颜色转化成到16进制的?在R G B中输入小于255的数字点击观看即可转换成#开通的16进制。代码如下:<%R_RG
- 我们在开发过程中,经常遇到这样问题,就是要求定期进行数据库的检查,如果发现特定数据,那么就要进行某项操作,这个需求呢,有两种做法,一是利用W
- 写这个的目地,主要是系统理下目前产品设计的流程,提醒自己尽量去避免一些常见的问题,也能让大家系统的了解天极网的产品设计流程。当然,不保证任何
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 22 - Fx.Elements通过
- 之前用Crystal做了一个数字转English Word的Formula刚刚心血来潮, 大半个晚上写了JS版本的数字转换, 由于JS的Bu
- <%on error resume nextdim conn,sql,rsset conn=Server.CreateObject(&
- Asp中Server.ScriptTimeOut属性需要注意的一点Server.ScriptTimeout?这个属性给定Asp脚本执行的最大
- 不加(0)的用法:set rs=conn.execute(sql)'将这个结果赋给rs这时要读取这个记录集第一个字段的数据就用rs(
- 如何使用mailto?1)基本用法<a href=mailto:sample@163.com>send em
- Rel-License 是微格式的开发标准之一,简单的说就是通过给引用标签(通常是链接)加上REL属性,来标明所引用链接/数据与文章的关系。
- 作为收费应用方面的数据库管理员(DBA),公司首席信息官(CIO)经常邀请我与Sarbanes-Oxley审查员开会讨 * 司数据的安全与整合
- 很多人都将<数据库设计范式>作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证
- 在计算机中数据有两种特征:类型和长度。所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。在SQL Server 中每个变量、参数
- 我们先看一下JavaScript中关系运算符的类型转换规则:关系运算符(<、>、<=、>=) 试图将 express
- 当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以提高数据库的使用效率,(当然还有其他用处比如,备份数据),这个时候我们就要
- 李开复曾经在年前表示,谷歌公司会在今年春节期间,对Google谷歌的搜索结果页进行“从未有过的尝试”修改,以凸显农历春节的喜庆气氛。现在,输