https://habr.com/ru/post/517972/Ну вот и пришел долгожданный конец халяве(
статья).
Честно говоря, было немного обидно. Вот чего им не хватает!
Я, разумеется, начал искать выход для себя и друзей. И нашел.
Этим выходом стала библиотека
translators(Яндекс она тоже умеет).
В целом, код остался прежним, как и в предыдущей
статье, немного изменилась логика.
Убрано было все, что касается Яндекс, добавлены библиотеки
langdetect и
translators. Первая для определения языка, ибо без доступа к API пришлось бы делать это вручную. Вторая, соответственно, модуль доступа к гугло-переводчику посредством urllib и requests.
Вот, собственно, все новшества:
................
from langdetect import detect
import translators as ts
................
indetect = detect(clip())
def definition():
if indetect == 'ru':
langout = 'en'
else:
langout = 'ru'
return langout
def translate():
output = []
output = ts.google(clip(), to_language=definition(), if_use_cn_host=True)
return output
................
Так же был изменен файл
~/.local/lib/python3.8/site-packages/translators/apis.py
53 #logger.add(sys.stdout, format='[{time:HH:mm:ss}] <lvl>{message}</lvl>', level='INFO')
120 #sys.stderr.write(f'Using {data.get("country")} server backend.\n')
144 self.cn_host_url = 'https://translate.google.ru'
151 self.output_zh = 'ru-RU'
Ну вот совсем мне не нужен вывод отладочной информации, строки 53 и 120, а так же умолчальный сервер и вывод в 144 и 151 изменен с китайского на русский.
Проект на
github.
P.S: Переводчик от Google, как оказалось, справляется со своим предназначением лучше яндексовского.