109 lines
4.6 KiB
VB.net
109 lines
4.6 KiB
VB.net
Imports System.Web
|
|
Imports System.Web.Routing
|
|
Imports iTextSharp.text.xml.simpleparser
|
|
|
|
Public Class cDeeplAPI
|
|
|
|
'PROD
|
|
Shared API_STRING As String = "https://api-free.deepl.com"
|
|
Shared AUTH_KEY As String = "57bad342-00e2-6732-da08-b6733fb09a91:fx"
|
|
|
|
|
|
Shared Function deepl_Translate(textTotranslate As String, ByRef textResult As String, targetLAN As String, Optional sourceLAN As String = "DE") As Boolean
|
|
textResult = textTotranslate
|
|
Dim rest As New Chilkat.Rest
|
|
|
|
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
|
|
' Connect to the REST server.
|
|
Dim bTls As Boolean = True
|
|
Dim port As Integer = 443
|
|
Dim bAutoReconnect As Boolean = True
|
|
Dim success As Boolean = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
|
|
|
|
If (success <> True) Then
|
|
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
|
|
Debug.WriteLine(rest.LastErrorText)
|
|
Return False
|
|
End If
|
|
|
|
'---------------------------------------------------
|
|
'See the Online Tool for Generating JSON Creation Code
|
|
Dim json As New Chilkat.JsonObject
|
|
' If sourceLAN <> "" Then json.UpdateNumber("source_lang", sourceLAN)
|
|
json.UpdateString("target_lang", targetLAN)
|
|
json.UpdateString("text", textTotranslate)
|
|
'json.UpdateString("preserve_formatting", 1)
|
|
json.UpdateString("auth_key", AUTH_KEY)
|
|
|
|
rest.AddHeader("Accept", "application/json")
|
|
rest.AddHeader("Content-Type", "application/x-www-form-urlencoded")
|
|
' client.DefaultRequestHeaders.Accept.Add(New System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
|
|
'client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
'rest.AddHeader("Authorization", AUTH_KEY)
|
|
' rest.AddHeader("Accept", "application/vnd.hmrc.1.0+json")
|
|
'rest.AddHeader("Accept", "*/*")
|
|
'rest.AddHeader("User-Agent", "PostmanRuntime/7.29.0")
|
|
'rest.AddHeader("Connection", "keep-alive")
|
|
'rest.AddHeader("Accept-Encoding", "gzip, deflate, br")
|
|
'rest.AddHeader("Cache-Control", "no-cache")
|
|
'rest.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0")
|
|
' rest.AddHeader("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
'rest.AddHeader("Accept", "*/*")
|
|
|
|
|
|
Dim sbRequestBody As New Chilkat.StringBuilder
|
|
'json.EmitSb(sbRequestBody)
|
|
'MsgBox(sbRequestBody.ToString)
|
|
|
|
|
|
'---------------------------------------------------
|
|
'Dim json As New Chilkat.JsonObject
|
|
'Dim successJsonLoad As Boolean = json.Load("
|
|
' {""source_lang"":DE,""target_lang"":""DE"",""text"":""Hello World"",""preserve_formatting"":""1"",""auth_key"":""57bad342-00e2-6732-da08-b6733fb09a91:fx""} ")
|
|
'If (successJsonLoad <> True) Then
|
|
' MsgBox(json.LastErrorText)
|
|
' Return False
|
|
'End If
|
|
'Dim sbRequestBody As New Chilkat.StringBuilder
|
|
'json.EmitSb(sbRequestBody)
|
|
|
|
' MsgBox("/v2/translate?auth_key=" & AUTH_KEY & "&target_lang=" & targetLAN & "&text=" & HttpUtility.UrlEncode(textTotranslate) & "")
|
|
Dim sbResponseBody As New Chilkat.StringBuilder
|
|
Dim srch = If(sourceLAN <> "", "&source_lang=" & sourceLAN, "")
|
|
success = rest.FullRequestSb("POST", "/v2/translate?auth_key=" & AUTH_KEY & "&target_lang=" & targetLAN & "&text=" & HttpUtility.UrlEncode(textTotranslate) & srch, sbRequestBody, sbResponseBody)
|
|
' success = rest.FullRequestSb("POST", "/v2/translate", sbRequestBody, sbResponseBody)
|
|
|
|
' MsgBox(success)
|
|
|
|
If (rest.LastMethodSuccess <> True) Then
|
|
Console.WriteLine(rest.LastErrorText)
|
|
Return False
|
|
End If
|
|
|
|
If success Then
|
|
Dim respStatusCode As Integer = rest.ResponseStatusCode
|
|
'MsgBox(respStatusCode)
|
|
If (respStatusCode = 200) Then
|
|
Try
|
|
Dim jsonResp = New Chilkat.JsonObject()
|
|
jsonResp.LoadSb(sbResponseBody)
|
|
If jsonResp.SizeOfArray("translations") > 0 Then
|
|
textResult = jsonResp.StringOf("translations[0].text")
|
|
' MsgBox("::::::::: " & jsonResp.StringOf("translations[0].text"))
|
|
Return True
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
End If
|
|
|
|
End If
|
|
|
|
Return False
|
|
End Function
|
|
|
|
|
|
End Class
|