一、背景
因為個人需要將中文翻譯成英文,所以開始對翻譯介面有了興趣!於是整理下常用的五個翻譯介面包括谷歌、百度、有道、必應、金山詞霸,經過研究發現,難度等級也是按照如上順序排列的。目前主流的翻譯也都提供了API介面,但是作為一個開發怎麼能不追求些挑戰呢!
(PS:跟窮沒有一點關係!)
二、第一階層(必應、金山)
為什麼說是第一階層呢?當然是因為這兩家秉持開放的觀念,不禁由衷對其表示尊重!
必應翻譯
必應有兩個介面,一個是用來獲取譯文的資料,一個是用來獲取翻譯的資料,引數都是一致的
引數:from=zh-CHS&to=en&text=程式碼
引數解析:
from 需要翻譯文字的語言
to 翻譯結果的語言
text 需要翻譯的內容
1.獲取譯文介面
介面地址:https://cn.bing.com/translator/
返回資料比較多,想看的自行去實驗吧
2.獲取翻譯介面
介面:https://cn.bing.com/ttranslate
返回結果:{"statusCode":200,"translationResponse":"Code"}
複製程式碼
金山詞霸
介面地址:http://fy.iciba.com/ajax.php?a=fy
引數:f=auto&t=auto&w=愛
引數解析:
f:需要翻譯的語言
t:翻譯成的語言
w:需要翻譯的內容
返回結果:{status: 1, content: {from: "zh", to: "en", out: "love", vendor: "ciba", err_no: 0}}
複製程式碼
三、第二階層(有道)
除了第一階級的兩家的介面是直接的,其他的介面都經過加密了,接下來就是加密程度的難易的區分了
有道翻譯
介面地址:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
引數:i=愛情&from=zh-CHS&to=en&smartresult=dict&client=fanyideskweb&salt=1541752274&sign=99b25d6a0f1dc171047ddf464fa5b87e&doctype=json&version=2.1&keyfrom=fanyi.web&action=FY_BY_REALTIME&typoResult=false
引數解析:
i 翻譯內容
salt 隨機數(官方是用時間+rand生成的,自己試了下用1、2、3這樣的也是可以的)
sign md5加密認證(是用一些密文和salt加上i然後進行md5加密,具體的內容就不說了,都在前端程式碼裡了)
from 需要翻譯文字的語言
to 翻譯成的語言
注意點:
1.其他引數都是固定的,可以直接忽視
2.需要帶上cookie內容:"Cookie:OUTFOX_SEARCH_USER_ID=-72747@1.8.1.1;"
返回結果:{"translateResult":[[{"tgt":"love","src":"愛情"}]],"errorCode":0,"type":"zh-CHS2en","smartResult":{"entries":["","love\r\n","affection\r\n","amor\r\n"],"type":1}}
複製程式碼
四、第三階層(谷歌、百度)
這兩家介面用到生成隨機數的前端程式碼比較繁瑣,試圖搞出來但是發現比較有難度,程式碼截圖如下,隨意感受下吧
百度的翻譯介面和谷歌的看上去比較相似,主要難點都是在與獲取隨機數
雖然沒有繼續研究下去,但是在網上有關這兩家介面的文章有很多,挑選了寫的比較好的,有興趣的小夥伴可以再深入研究!
百度介面研究
谷歌介面研究
五、後記
當然如果不差錢的小夥伴還是建議去直接申請各大翻譯平臺的API的介面,又穩定又不折騰。支援正版!
這個主要還是個人想研究下,如果造成什麼不良影響,請及時跟我溝通下吧。(不過應該沒啥影響的)