小胖的 Adobe AIR with Ajax 实例课堂(二)
小胖的 Adobe AIR with Ajax 实例课堂(二)
第二课 : 调用google翻译服务,实现英汉单词互译
======================
google翻译服务简介
上一课的前言部分实在太啰嗦了 ,这一课让我们加快点节奏,直入主题吧.
google的翻译服务 提供了基于HTTP服务的API(按google的说法是 提供了一个简单的 RESTful 界面 ).
只要向服务地址发送HTTP请求,并传递相应的数据, google就会把结果以JSON字符串的形式返回给客户端.
调用google的翻译服务的URL类似如下:
http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=test&langpair=en%7Czh-CN
其中 q=test 意为要翻译的词是"test",
langpair=en%7Czh-CN 其实就是 langpair=en|zh_CN , 意为"英到汉"的翻译.
调用成功的返回信息类似如下:
{"responseData":{"translatedText":"测试"}, "responseDetails":null, "responseStatus":200} {"responseData":null, "responseDetails":"invalid text", "responseStatus":400} <div><textarea id="queryWord" name="queryWord" rows="" cols="">test</textarea></div><div><input type="radio" name="langpair" value="en|zh-CN" checked="checked">英-->汉<input type="radio" name="langpair" value="zh-CN|en">汉-->英</div><div><button type="button" id="doTranslate" >翻译</button></div><div> 结果 :</div><div id="result"> </div>
* {font-size : 14px;}#result {border : 1px solid #cccccc;padding : 10px;margin : 10px;}
// 页面初始化后 执行下面的代码 $(document).ready(function(){//给"翻译"按钮注册点击事件$("#doTranslate").click(function(event){// 取"单词输入框"的内容,并trim,如果输入内容为空则不做翻译var q= $.trim( $('#queryWord').val()||$('#queryWord').text() );if (!q) {return;}//定义一些常量var ERR_MSG="( Cann't Translate! )";var TRANSLATE_API="http://ajax.googleapis.com/ajax/services/language/translate";var TRANSLATE_VER = "1.0";// 取翻译类型的值var langpair=$('input:radio[name=langpair]:checked').val();// 利用Ajax调用 google翻译服务, 将返回结果写入到 id="result"的DIV里.// AIR 里的 Ajax 支持跨域访问!!!! 所以我们可以直接调用google翻译服务.$.getJSON( TRANSLATE_API,// 调用服务时 传递的参数.{ v : TRANSLATE_VER,q : q,langpair : langpair},// 调用服务后的回调函数. function(data, textStatus){if (textStatus=="success") {var status=data.responseStatus,t;if (status==200) {t=data.responseData? data.responseData.translatedText:ERR_MSG;}else{t=data.responseDetails||ERR_MSG;}}//把翻译结果 或者是错误提示 显示在id="result"的DIV里$('#result').html(t) }); }); });