1)Google翻譯接口
2)微信調用
3)效果展示
----------------------------------------------------------------------------------------
1)Google翻譯接口
Google提供翻譯的API接口,參見https://developers.google.com/translate/v2/getting_started
but
Google Translate API is a paid service.
so
想利用Google Translate API free charge 就要另外想辦法了
Google提供免費的線上翻譯功能,是以,可以通過Web發送翻譯請求給Google,接收它的html傳回,然後,通過分析html擷取翻譯後的文字.
function translate_web($text, $language="auto|en") {
if (empty($text)) return false;
$url = "http://google.cn/translate_t?ie=UTF-8&oe=UTF-8&langpair=".$language."&text=".urlencode($text);
$html=file_get_contents($url);
// parse html
// html souce: TTS_TEXT_SIZE_LIMIT=100;TRANSLATED_TEXT='世界,你好!';INPUT_TOOL_PATH='//www.google.com';
$mode= ("/TRANSLATED_TEXT='(.*)';INPUT_TOOL_PATH/");
if (preg_match($mode,$html,$out)){
return $out[1];//ret;
}
}
更有甚者,有人發現通過http://translate.google.com/translate_a/t?client=p與Google互動可以得到json傳回,這就相當于API使用了
function translate_json($text, $language="auto|en") {
if (empty($text)) return false;
$url = "http://translate.google.cn/translate_a/t?client=p&ie=UTF-8&oe=UTF-8&langpair=".$language."&text=".urlencode($text);
$json=file_get_contents($url);
$data = json_decode($json);
return $data->sentences[0]->trans;
}
Google翻譯接口示例: http://download.csdn.net/detail/d_eng/6563915
這裡要注意的有兩個問題
1)編碼問題,例子中都采用utf-8,連php檔案的屬性都是utf-8
2)google問題,google在中國不保證一直能連上,雖然有多個連結 google.com/google.cn/google.com.hk
2)微信調用
有了接口,在微信中調用就簡單了
接口檔案 translate_func.php (save as utf-8)
<?php
/*
2 Google Translate interface
1) Google Translate WEB IF
get translated text by parsing return html which code is GBK
function translate_web()
2) Google Translate JSON IF
get translated text which format=json(set client<>t)&default code=GBK
function translate_json()
d_eng ([email protected])
2013-11-16
*/
/*
Google Translate WEB IF
get translated text by parsing return html which code is GBK
*/
//header("Content-Type:text/html; charset=utf-8");
function translate_web($text, $language="auto|en") {
if (empty($text)) return false;
$url = "http://google.cn/translate_t?ie=UTF-8&oe=UTF-8&langpair=".$language."&text=".urlencode($text);
$html=file_get_contents($url);
// parse html
// html souce: TTS_TEXT_SIZE_LIMIT=100;TRANSLATED_TEXT='世界,你好!';INPUT_TOOL_PATH='//www.google.com';
$mode= ("/TRANSLATED_TEXT='(.*)';INPUT_TOOL_PATH/");
if (preg_match($mode,$html,$out)){
return $out[1];//ret;
}
}
function translate_json($text, $language="auto|en") {
if (empty($text)) return false;
$url = "http://translate.google.cn/translate_a/t?client=p&ie=UTF-8&oe=UTF-8&langpair=".$language."&text=".urlencode($text);
$json=file_get_contents($url);
$data = json_decode($json);
return $data->sentences[0]->trans;
}
function with_chinese($text){
return preg_match('/[\x7f-\xff]/',$text);
}
function translate($text) {
if (with_chinese($text)) {
return translate_json($text,'zh-CN|en');
} else {
return translate_json($text,'en|zh-CN');
}
}
?>
調用代碼片段
if ($RX_TYPE=="text") {
include("translate_func.php");
$resultStr = $this->responseText($postObj, translate(trim($postObj->Content)));
}
3)效果展示
