关于网站调用在线翻译api实现翻译功能
在做一些網(wǎng)站的時(shí)候偶爾會(huì)遇到需要中英文翻譯的部分,也許是提供用戶(hù)在線(xiàn)翻譯的功能,也可能是把用戶(hù)輸入的一整段文字進(jìn)行翻譯。小龍最近就遇到這么一個(gè)事兒,對(duì)接中外兩方用戶(hù)的溝通,為了對(duì)語(yǔ)言不那么順暢的用戶(hù)提供一點(diǎn)點(diǎn)幫助,在網(wǎng)站里嵌入了自動(dòng)翻譯的功能,就簡(jiǎn)化了用戶(hù)復(fù)制黏貼,再打開(kāi)百度翻譯的步驟了。
小龍用的是有道提供的api,普通用戶(hù)就可以免費(fèi)使用的。有道提供了網(wǎng)頁(yè)模塊的調(diào)用法和數(shù)據(jù)接口型的,網(wǎng)頁(yè)模塊的會(huì)比較簡(jiǎn)單一些,在他們官網(wǎng)上把寫(xiě)好的代碼復(fù)制進(jìn)html就好,這邊簡(jiǎn)單展開(kāi)以下數(shù)據(jù)接口型的調(diào)用。
首先,我們需要一個(gè)key,做過(guò)百度api的朋友對(duì)這個(gè)應(yīng)該是完全不陌生了。申請(qǐng)地址:http://ai.youdao.com/,注冊(cè)后就可以申請(qǐng)了。
有道提供的api很簡(jiǎn)單:
http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=<doctype>&version=1.1&q=要翻譯的文本
一個(gè)很標(biāo)準(zhǔn)的GET形式的數(shù)據(jù)傳輸,想看結(jié)果的朋友可以直接申請(qǐng)key以后,將這段鏈接復(fù)制進(jìn)瀏覽器的地址欄,打開(kāi),就可以看到回傳的數(shù)據(jù)了,記得數(shù)據(jù)類(lèi)型必須是utf8的,還要url轉(zhuǎn)碼哦。
小龍給一個(gè)PHP的DEMO給參考下:
function simple_translate($sentence){$url_sentence = urlencode($sentence);$url = "http://fanyi.youdao.com/openapi.do?keyfrom=xinlei&key=759115437&type=data&doctype=json&version=1.1&q=".$url_sentence;$str_json = file_get_contents($url);if ($str_json){$info = json_decode($str_json);$translation = $info->translation;$result_sentence = $translation[0];}else{$result_sentence = $sentence;}return $result_sentence; }這個(gè)api有個(gè)小小的缺點(diǎn),就是只能翻譯200個(gè)字符以?xún)?nèi)的段落,多了,他就OOXX了~~~~
我們的解決方法嘛,小龍就把段落切成了句子,然后一句句翻,翻完了拼起來(lái)唄。。。最原始的方法了,不過(guò),很好使
給一個(gè)加強(qiáng)版的DEMO,會(huì)調(diào)用到上面的function
function translate($string){if ($string){$symbol_array = array(".", "?", "!", ")", "(", "[", "]","{", "}",":");$i = 0;$result = "";while($i < strlen($string)){if (in_array($string[$i], $symbol_array)){$s = $string[$i];$string1 = substr($string, 0, $i);$string2 = substr($string, $i+1);$result = simple_translate($string1).$s.translate($string2);break;}$i++;}if (!$result){$result = simple_translate($string);}return $result;}else{return "";}}按照 . , ? ! : () [] {} 對(duì)于段落進(jìn)行了切割,然后逐句翻譯,最后再整個(gè)拼起來(lái)。
轉(zhuǎn)載于:https://www.cnblogs.com/starkiller/p/6928954.html
總結(jié)
以上是生活随笔為你收集整理的关于网站调用在线翻译api实现翻译功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 4G最快网速相当于30M宽带
- 下一篇: hibernate 管理 Session