src/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/LibreTranslateEngine.py

branch
eric7
changeset 10928
46651e194fbe
parent 10439
21c28b0f9e41
child 11090
f5f5f5803935
equal deleted inserted replaced
10927:ce599998be7d 10928:46651e194fbe
11 import json 11 import json
12 12
13 from PyQt6.QtCore import QByteArray, QTimer, QUrl 13 from PyQt6.QtCore import QByteArray, QTimer, QUrl
14 from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest 14 from PyQt6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest
15 15
16 from eric7 import Utilities 16 from eric7 import EricUtilities
17 from eric7.EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired 17 from eric7.EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
18 from eric7.EricWidgets import EricMessageBox 18 from eric7.EricWidgets import EricMessageBox
19 19
20 from .TranslationEngine import TranslationEngine 20 from .TranslationEngine import TranslationEngine
21 21
133 if apiKey: 133 if apiKey:
134 paramsStr += "&api_key={0}".format(apiKey) 134 paramsStr += "&api_key={0}".format(apiKey)
135 paramsStr += "&q=" 135 paramsStr += "&q="
136 params = QByteArray(paramsStr.encode("utf-8")) 136 params = QByteArray(paramsStr.encode("utf-8"))
137 encodedText = QByteArray( 137 encodedText = QByteArray(
138 Utilities.html_encode(text).encode("utf-8") 138 EricUtilities.html_encode(text).encode("utf-8")
139 ).toPercentEncoding() 139 ).toPercentEncoding()
140 request = params + encodedText 140 request = params + encodedText
141 response, ok = requestObject.post(QUrl(url), request) 141 response, ok = requestObject.post(QUrl(url), request)
142 if ok: 142 if ok:
143 try: 143 try:
144 responseDict = json.loads(response) 144 responseDict = json.loads(response)
145 except ValueError: 145 except ValueError:
146 return self.tr("LibreTranslate: Invalid response received"), False 146 return self.tr("LibreTranslate: Invalid response received"), False
147 147
148 try: 148 try:
149 return Utilities.html_encode(responseDict["translatedText"]), True 149 return EricUtilities.html_encode(responseDict["translatedText"]), True
150 except KeyError: 150 except KeyError:
151 return self.tr("LibreTranslate: No translation available."), False 151 return self.tr("LibreTranslate: No translation available."), False
152 else: 152 else:
153 with contextlib.suppress(ValueError, KeyError): 153 with contextlib.suppress(ValueError, KeyError):
154 responseDict = json.loads(response) 154 responseDict = json.loads(response)

eric ide

mercurial