Para ser honesto, fue un poco ofensivo. ¡Eso es lo que les falta!
Por supuesto, comencé a buscar una salida para mí y mis amigos. Y lo encontré.
Esta salida fue la biblioteca de traductores (Yandex también puede hacerlo).
En general, el código sigue siendo el mismo que en el artículo anterior , la lógica ha cambiado ligeramente.
Se eliminó todo lo relacionado con Yandex , se agregaron las bibliotecas langdetect y traductores . La primera es definir el idioma, porque sin acceso a la API tendrías que hacerlo de forma manual. El segundo, respectivamente, es el módulo para acceder al traductor de Google a través de urllib y solicitudes.
Aquí están todas las innovaciones:
................
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
................
El archivo ~ / .local / lib / python3.8 / site-packages / translators / apis.py también ha sido cambiado
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'
Bueno, no necesito la salida de depuración en absoluto, las líneas 53 y 120, así como el servidor predeterminado y la salida en 144 y 151 cambió de chino a ruso.
Proyecto en github .
PD: El traductor de Google, como resultó, hace frente a su propósito mejor que Yandex.