-
Notifications
You must be signed in to change notification settings - Fork 23
/
MicrosoftTranslatorTextMachineTranslation.kt
46 lines (31 loc) · 1.27 KB
/
MicrosoftTranslatorTextMachineTranslation.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// "targetLanguages" is a list of strings. To translate into German and Italian, add "de" and "it" to that list.
data class TranslatorTextRequest(val Text: String)
data class LanguageDetection(val language: String, val score: Float)
data class Translation(val text: String, val to: String)
data class TranslatorTextResponseItem(
val detectedLanguage: LanguageDetection,
val translations: List<Translation>)
class TranslatorTextResponse : ArrayList<TranslatorTextResponseItem>()
val host = "https://api.cognitive.microsofttranslator.com"
val path = "/translate?api-version=3.0"
val base = host + path
val targetLanguages = listOf("de", "it")
val urlBuilder = URIBuilder(base)
targetLanguages.forEach { language ->
urlBuilder.addParameter("to", language)
}
val url = urlBuilder
.toString()
val request = TranslatorTextRequest(input)
val requests = ArrayList<TranslatorTextRequest>()
requests.add(request)
val gson = Gson()
val body = gson.toJson(requests)
val responseString = Unirest.post(url)
.header("Content-Type", "application/json")
.header("Ocp-Apim-Subscription-Key", subscriptionKey)
.body(body)
.asString()
.body
val response = gson.fromJson(responseString, TranslatorTextResponse::class.java)
val translations = response[0].translations