Saludos, Habr. Este artículo es una continuación de
este . Antes de leer, le recomiendo que lo lea si no lo ha hecho antes.
Hoy aprenderás:
- Cómo obtener más de una respuesta, aunque sea una granja colectiva
- Cómo conectar un traductor Yandex a esto
- Y cómo escribirle al usuario que hizo todo mal
Traductor Api Yandex
El traductor Yandex tiene una buena API y la usaremos. Estudiamos cuidadosamente la
documentación y vamos a la batalla. Pero aquí Yandex nos pone un cerdo.
Requisitos para usar los resultados de traducción
De acuerdo con la Licencia para usar Yandex.Translator, el texto traducido por el servicio Yandex.Translator con un enlace activo a la página translate.yandex.ru debe indicarse arriba o debajo del resultado de la traducción.
Requisitos de diseño de texto
El texto debe especificarse:
en la descripción del producto de software;
Ayuda para un producto de software
en el sitio web oficial del producto de software;
en todas las páginas o pantallas donde se utilizan datos de servicio.
Bueno, no somos personas orgullosas, sobreviviremos.
Como funciona
El usuario nos escribe un mensaje, le preguntamos en qué idioma quiere traducir la frase. Después pedimos que se traduzca el texto y se envíe el resultado.
Implementación técnica
Obtenga la clave de
la API
Usamos
esta bibliotecafrom yandex_translate import YandexTranslate
Pateamos Longpoll como describí en la primera parte.
if event.text == '':
¿Qué son las excepciones y qué comen?
Excepciones: esto es tal que, en caso de error, se ejecuta y nos informa al respecto. Para el manejo de excepciones, se usa try - except construct.
Intentemos implementar nuestro código sin esta construcción.
-Traducción
-¿Qué idioma? Indicar en dos letras.
Por ejemplo: ruso - ru, inglés - en
-en
-Ingrese la frase que desea traducir
-Hola Habr
-Traducido por el servicio Yandex.Translator translate.yandex.ru
['Hola Habr']
Bueno, funciona, y ¿por qué necesitamos sus excepciones?
Pero por qué:
-Traducción
-¿Qué idioma? Indicar en dos letras.
Por ejemplo: ruso - ru, inglés - en
-abracadabra
-Ingrese la frase que desea traducir
-Hola Habr
...
Mientras tanto, en la consola:
Traceback (most recent call last): File "C:\Py_trash\habrex.py", line 112, in <module> main() File "C:\Py_trash\habrex.py", line 78, in main trResult = translate.translate(event.text, trFrom + '-' + trTo) File "C:\Users\Hukuma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\yandex_translate\__init__.py", line 150, in translate raise YandexTranslateException(status_code) yandex_translate.YandexTranslateException: None
Y con excepciones:
-Traducción
-¿Qué idioma? Indicar en dos letras.
Por ejemplo: ruso - ru, inglés - en
-Abracadabra
-Ingrese la frase que desea traducir
-Hola Habr
- Idioma ingresado incorrectamente
Veré el intento, excepto la construcción con más detalle:
try:
Daré un ejemplo con la API de Wikipedia:
try: result = str(wikipedia.summary(event.text)) except wikipedia.exceptions.PageError: print(' ') except wikipedia.exceptions.DisambiguationError: print('')
Como entiendes, puede haber varias excepciones.
En esto te digo adiós. Todo lo mejor