类定义
/** * Google翻译的ajax接口简单封装 */ class GoogleTranslateAjaxAPI {
/** * 调用Google翻译ajax接口,直接返回 */ public static function translate($content, $fromLang = 'zh-CN', $toLang = 'en', $fromEnc = 'UTF-8', $toEnc = 'UTF-8') { try { // 因为是通过URL传递参数,需要编码,还可能存在长度限制 $content = trim($content); $content = urlencode($content); $url = "http://translate.google.cn/translate_a/t?client=t&sl=$fromLang&tl=$toLang&hl=en&sc=2&ie=$fromEnc&oe=$toEnc&oc=1&otf=2&srcrom=1&ssel=5&tsel=5&q=$content"; $html = file_get_contents($url); } catch (Exception $ex) { $html = ''; } return $html; } } |
使用示例
/** * 获取客户端提交数据 */ function getRequest($key, $default = null) { return isset($_REQUEST[$key]) ? $_REQUEST[$key] : $default; }
/** * 页面入口函数 */ function main() { header("Content-type: text/html; charset=utf-8"); $fromLang = getRequest('fromLang', 'zh-CN'); $toLang = getRequest('toLang', 'en'); $fromEnc = getRequest('fromEnc', 'UTF-8'); $toEnc = getRequest('toEnc', 'UTF-8'); $content = getRequest('content', '测试'); $googleret = GoogleTranslateAjaxAPI::translate($content, $fromLang, $toLang, $fromEnc, $toEnc); return $googleret; }
echo main(); |
前端JS
$.get(url, {toLang: toLang, content: inputContent}, function(data){ // 由于调用了Google翻译的ajax接口,此处data格式为Google定义格式 var data = new Function("return " + data)(); var sentences = [], i = 0, len = data[0].length; // 合并每一个句子中的目标翻译对象 for(i = 0, len = data[0].length; i<len; i++) { sentences.push(data[0][i][0]); } // 替换到文本输入框中 $('#output').val(sentences.join(' ')); }, 'text');