微軟翻譯官方文檔:https://docs.microsoft.com/zh-cn/azure/cognitive-services/translator/reference/v3-0-translate
最近項(xiàng)目中接入了微軟翻譯功能颊郎,在查找相關(guān)資料的時(shí)候發(fā)現(xiàn)網(wǎng)上關(guān)于這個(gè)的資料比較少郁惜。在此做個(gè)簡單的總結(jié)择懂,希望能對大家有所幫助螃诅。
接入
微軟的翻譯功能其實(shí)就是提供了一個(gè)鏈接地址:https://api.cognitive.microsofttranslator.com/translate
將需要翻譯的文本以httpBody的方式傳入該地址宜咒,就會(huì)得到翻譯后的文本。
接口需要的參數(shù)
<1>params
api-version:該參數(shù)為版本號(hào)尽超,值為固定值3.0
to:該參數(shù)為翻譯后的輸出文本語言,例如:zh-Hans
這兩個(gè)參數(shù)是拼接在https://api.cognitive.microsofttranslator.com/translate這個(gè)鏈接地址上的
<2>Headers
這里必需的兩個(gè)參數(shù)為:身份驗(yàn)證標(biāo)頭、Content-Type奥吩。
Content-Type:指定有效負(fù)載的內(nèi)容類型哼蛆,值為:application/json; charset=UTF-8
身份驗(yàn)證標(biāo):第一個(gè)選項(xiàng)是使用 Ocp-Apim-Subscription-Key 標(biāo)頭進(jìn)行身份驗(yàn)證。 將 Ocp-Apim-Subscription-Key: <YOUR_SECRET_KEY> 標(biāo)頭添加到請求中,或者霞赫,可以交換訪問令牌的密鑰腮介。 此令牌作為 Authorization 標(biāo)頭包含在每個(gè)請求中。一般都是用第二種方式進(jìn)行身份驗(yàn)證端衰,即使用Authorization叠洗,例如:Authorization: Bearer <Base64-access_token>。Base64-access_token需要單獨(dú)獲取,這個(gè)通常是后臺(tái)人員來完成的旅东。
<3>Body
請求的正文是一個(gè) JSON 數(shù)組灭抑。 每個(gè)數(shù)組元素都是一個(gè) JSON 對象,具有一個(gè)名為 Text 的字符串屬性抵代,該屬性表示要翻譯的字符串腾节。例如
[
{"Text":"I would really like to drive your car around the block a few times."}
]
以下限制適用:
- 數(shù)組最多可具有 100 個(gè)元素。
- 包括空格在內(nèi)荤牍,請求中包含的整個(gè)文本不能超過 5,000 個(gè)字符案腺。
下面我用postman來模擬一下
-
這里Authorization的value需要注意下,Bearer與后面的值(這個(gè)值需要后臺(tái)獲取康吵,具體獲取方式見官方文檔)之間是有空格的劈榨。
截屏2019-11-26下午4.32.14.png
截屏2019-11-26下午4.34.36.png
以上就是翻譯后得到的結(jié)果了。
swift
let header = ["Content-Type": "application/json; charset=UTF-8", "Authorization": "Bearer \(這個(gè)值需要后臺(tái)獲取晦嵌,具體獲取方式見官方文檔)"]
var param = Array<[String:Any]>()
param.append(["Text":content])
let url = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=\(輸出文本的語言)"
let urlS = URL(string: url)
var request: URLRequest? = nil
if let urlS = urlS {
request = URLRequest(url: urlS)
}
request?.httpMethod = "POST"
request?.httpBody = try? JSONSerialization.data(withJSONObject: param)
request?.allHTTPHeaderFields = header
if let request = request {
Alamofire.request(request).responseJSON { response in
//翻譯結(jié)果
//your code
}
}
如果有幫到你的話同辣,點(diǎn)個(gè)贊再走拷姿?