-
Notifications
You must be signed in to change notification settings - Fork 0
/
translator.py
27 lines (20 loc) · 879 Bytes
/
translator.py
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
import googletrans
from logger_builder import get_logger
from PyQt5 import QtCore
logger = get_logger(__name__)
class Translator(QtCore.QObject):
translated_signal = QtCore.pyqtSignal(str, str)
def __init__(self, translator=googletrans.Translator()):
super().__init__()
self._translator = translator
def _translate(self, text, lang_src="en", lang_dst="ru"):
return self._translator.translate(text, src=lang_src, dest=lang_dst).text
def translate(self, text, lang_from, lang_to):
try:
stripped_text = text.strip()
translation_result = self._translate(text, lang_from, lang_to).strip()
self.translated_signal.emit(stripped_text, translation_result)
except Exception as e:
self._dst_text = ""
logger.info(f"Cant translate '{text}'")
logger.info(e)