python

Автоматический переводчик на Python+GTK3. Альтернатива Яндексу

  • понедельник, 7 сентября 2020 г. в 00:28:27
https://habr.com/ru/post/517972/
  • Python
  • GTK+


Ну вот и пришел долгожданный конец халяве(статья).



Честно говоря, было немного обидно. Вот чего им не хватает!

Я, разумеется, начал искать выход для себя и друзей. И нашел.

Этим выходом стала библиотека 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, как оказалось, справляется со своим предназначением лучше яндексовского.