国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
微信公眾平臺開發(fā)(六) 翻譯功能開發(fā)

一、簡介

上一篇文章介紹了微信公眾平臺天氣預(yù)報功能的開發(fā),實現(xiàn)了微信公眾平臺的第一個實際應(yīng)用,在接下來的這一篇文章中,我們將對微信翻譯功能進行簡單開發(fā),以供讀者參考。

二、思路分析

和上一篇查詢天氣的思路差不多,首先要對用戶發(fā)送過來的消息進行判斷,判斷消息里是否含有“翻譯”關(guān)鍵字,如果含有,則提取待翻譯內(nèi)容,然后調(diào)用網(wǎng)絡(luò)上開放的翻譯API 進行相關(guān)翻譯。

三、翻譯API 分析

網(wǎng)絡(luò)上有很多翻譯API,大家可以根據(jù)自己的需求進行選擇。這里我們選擇應(yīng)用比較廣泛的,翻譯功能還比較不錯的有道翻譯API 和百度翻譯API,下面對這兩種API的相關(guān)信息進行分析。

3.1 有道翻譯API

3.1.1 API 地址:http://fanyi.youdao.com/openapi

注意:有道提供的API 接口,在下面的測試時,json 數(shù)據(jù)格式返回不正確,到網(wǎng)上查閱資料,可以正確翻譯的地址為 http://fanyi.youdao.com/fanyiapi,這點注意。

3.1.2 申請key

按照要求填寫相關(guān)信息,這些信息,下面會使用到,所以請認真如實填寫。

申請完之后,會在下方生成API key 和keyfrom,使用API 時會用到。

3.1.3 API 使用范例

3.1.4 數(shù)據(jù)格式

a. xml 格式

http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=xml&version=1.1&q=這里是有道翻譯API

<?xml version="1.0" encoding="UTF-8"?><youdao-fanyi>    <errorCode>0</errorCode>    <!-- 有道翻譯 -->    <query><![CDATA[這里是有道翻譯API]]></query>    <translation>        <paragraph><![CDATA[Here is the youdao translation API]]></paragraph>    </translation></youdao-fanyi>

b. json 格式

http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=json&version=1.1&q=翻譯

{    "errorCode":0    "query":"翻譯",    "translation":["translation"], // 有道翻譯    "basic":{ // 有道詞典-基本詞典        "phonetic":"fān yì",        "explains":[            "translate",            "interpret"        ]    },    "web":[ // 有道詞典-網(wǎng)絡(luò)釋義        {            "key":"翻譯",            "value":["translator","translation","translate","Interpreter"]        },        {...}    ]}

3.2 百度翻譯API

3.2.1 API 地址:http://openapi.baidu.com/public/2.0/bmt/translate

3.2.2 獲取api key

開發(fā)者在百度連接平臺上注冊得到的授權(quán)API key,詳細請參閱:http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%BD%91%E7%AB%99%E6%8E%A5%E5%85%A5/%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97

3.2.3 API 使用范例

3.2.4 數(shù)據(jù)格式

百度翻譯API 響應(yīng)的數(shù)據(jù)格式為UTF-8編碼的PHP數(shù)組對應(yīng)的標準JSON字符串。

{    “from”:”zh”,    “to”:”en”,    “trans_result”:[]}

trans_result 為一個數(shù)組,其中每一個{}就是一個段落,結(jié)構(gòu)如下所示:

trans_result: [{},{},{}]

段落結(jié)果即為trans_result 數(shù)組中的一項:

{“src”:””,“dst”:””}

段落結(jié)果說明:

經(jīng)json_decode 后的形式:

{    "from": "en",    "to": "zh",    "trans_result": [        {            "src": "today",            "dst": "今天"        }    ]}

四、關(guān)鍵字判斷與待翻譯內(nèi)容讀取

翻譯消息的格式是 “翻譯+待翻譯內(nèi)容”,所以首先截取前兩個字,判斷是否為 “翻譯” 關(guān)鍵字。

使用php函數(shù) mb_substr() 截取,關(guān)于該函數(shù)的用法上一篇已經(jīng)講過,這里不再贅述。

$str_trans = mb_substr($keyword,0,2,"UTF-8");

從消息的開頭開始截取,截取兩個字符,然后加以判斷是否為 “翻譯” 關(guān)鍵字。

$str_valid = mb_substr($keyword,0,-2,"UTF-8");

判斷是否只輸入“翻譯”兩字,這樣輸入,沒有待翻譯內(nèi)容,則輸入的消息也不正確。

接下來進行待翻譯內(nèi)容提取:

$word = mb_substr($keyword,2,220,"UTF-8");

從消息的開頭第3個字符開始截取,截取202個字符,截取出來的即為待翻譯內(nèi)容。

接著調(diào)用函數(shù)進行翻譯。

//調(diào)用有道詞典$contentStr = $this->youdaoDic($word);//調(diào)用百度詞典$contentStr = $this->baiduDic($word);

五、具體實現(xiàn)

5.1 有道翻譯API

數(shù)據(jù)接口:

http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=<doctype>&version=1.1&q=要翻譯的文本

將上面的keyfrom 和key換成上面申請的內(nèi)容,然后選擇doctype,再輸入要翻譯的文本,就可以調(diào)用有道翻譯API 進行翻譯了。

有道翻譯提供了三種數(shù)據(jù)格式,這里我們只講解兩種,即xml 和json。

5.1.1 xml 格式

關(guān)鍵代碼如下:

public function youdaoDic($word){        $keyfrom = "orchid";    //申請APIKEY 時所填表的網(wǎng)站名稱的內(nèi)容        $apikey = "YourApiKey";  //從有道申請的APIKEY                //有道翻譯-xml格式        $url_youdao = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='.$keyfrom.'&key='.$apikey.'&type=data&doctype=xml&version=1.1&q='.$word;                $xmlStyle = simplexml_load_file($url_youdao);                $errorCode = $xmlStyle->errorCode;        $paras = $xmlStyle->translation->paragraph;        if($errorCode == 0){            return $paras;        }else{            return "無法進行有效的翻譯";        }
}

說明:

$xmlStyle = simplexml_load_file($url_youdao);  // PHP 函數(shù),將XML 文檔載入對象中。

$errorCode = $xmlStyle->errorCode;  // 獲取錯誤碼

$paras = $xmlStyle->translation->paragraph;  // 獲取翻譯內(nèi)容

5.1.2 json 格式

關(guān)鍵代碼如下:

    public function youdaoDic($word){        $keyfrom = "orchid";    //申請APIKEY時所填表的網(wǎng)站名稱的內(nèi)容        $apikey = "YourApiKey";  //從有道申請的APIKEY                //有道翻譯-json格式        $url_youdao = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='.$keyfrom.'&key='.$apikey.'&type=data&doctype=json&version=1.1&q='.$word;                $jsonStyle = file_get_contents($url_youdao);        $result = json_decode($jsonStyle,true);                $errorCode = $result['errorCode'];                $trans = '';        if(isset($errorCode)){            switch ($errorCode){                case 0:                    $trans = $result['translation']['0'];                    break;                case 20:                    $trans = '要翻譯的文本過長';                    break;                case 30:                    $trans = '無法進行有效的翻譯';                    break;                case 40:                    $trans = '不支持的語言類型';                    break;                case 50:                    $trans = '無效的key';                    break;                default:                    $trans = '出現(xiàn)異常';                    break;            }        }        return $trans;            }

說明:

$jsonStyle = file_get_contents($url_youdao);  // 把整個文件讀入一個字符串中

$result = json_decode($jsonStyle,true);  // 對JSON 格式的字符串進行編碼

$errorCode = $result['errorCode'];  // 獲取錯誤碼

$trans = $result['translation']['0'];  // 獲取翻譯結(jié)果

5.2 百度翻譯API

百度翻譯API提供UTF-8編碼的PHP數(shù)組對應(yīng)的標準JSON字符串,而且提供了 中->英,中->日,英->中,日->中 四種互譯,比有道翻譯多了一種。

關(guān)鍵代碼如下:

    //百度翻譯    public function baiduDic($word,$from="auto",$to="auto"){                //首先對要翻譯的文字進行 urlencode 處理        $word_code=urlencode($word);                //注冊的API Key        $appid="YourApiKey";                //生成翻譯API的URL GET地址        $baidu_url = "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=".$appid."&q=".$word_code."&from=".$from."&to=".$to;                $text=json_decode($this->language_text($baidu_url));        $text = $text->trans_result;        return $text[0]->dst;    }            //百度翻譯-獲取目標URL所打印的內(nèi)容    public function language_text($url){        if(!function_exists('file_get_contents')){            $file_contents = file_get_contents($url);        }else{                            //初始化一個cURL對象            $ch = curl_init();            $timeout = 5;            //設(shè)置需要抓取的URL            curl_setopt ($ch, CURLOPT_URL, $url);            //設(shè)置cURL 參數(shù),要求結(jié)果保存到字符串中還是輸出到屏幕上            curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);            //在發(fā)起連接前等待的時間,如果設(shè)置為0,則無限等待            curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);            //運行cURL,請求網(wǎng)頁            $file_contents = curl_exec($ch);            //關(guān)閉URL請求            curl_close($ch);        }        return $file_contents;    }

說明:

這里包含了兩個函數(shù),baiduDic() 和 language_text()。

baiduDic() 函數(shù):

$word_code=urlencode($word);  // 首先對要翻譯的文字進行 urlencode 處理

$text=json_decode($this->language_text($baidu_url));  // 調(diào)用language_text() 函數(shù)獲取目標URL所打印的內(nèi)容,然后對JSON 格式的字符串進行編碼

$text = $text->trans_result;  //獲取翻譯結(jié)果數(shù)組

return $text[0]->dst;  //取第一個數(shù)組的dst 結(jié)果。

language_text() 函數(shù):

判斷file_get_contents() 函數(shù)是否存在,如果存在,則使用該函數(shù)獲取URL內(nèi)容;如果不存在,則使用cURL 工具獲取URL內(nèi)容。具體參見代碼。

六、測試

有道翻譯-xml 格式:

有道翻譯-json 格式:

百度翻譯:

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
利用有道翻譯API key申請方法圖示
使用有道翻譯API做翻譯(c語言實現(xiàn))
30行Python代碼自己寫一個英語翻譯工具
教你如何優(yōu)雅的用R語言調(diào)用有道翻譯
Excel里內(nèi)嵌在線翻譯
用Python做一個簡單的翻譯工具
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服