Salutations, Habr. Cet article est une continuation de
celui-ci . Avant de lire, je vous recommande fortement de le lire si vous ne l'avez pas déjà fait auparavant.
Aujourd'hui, vous apprendrez:
- Comment obtenir plus d'une réponse, bien que la ferme collective
- Comment connecter un traducteur Yandex à ce
- Et comment écrire à l'utilisateur qu'il a tout fait de travers
Traducteur Api Yandex
Le traducteur Yandex a une bonne API et nous l'utiliserons. Nous étudions attentivement la
documentation et partons au combat. Mais ici, Yandex nous met un cochon.
Conditions requises pour utiliser les résultats de la traduction
Selon la licence d'utilisation de Yandex.Translator, le texte traduit par le service Yandex.Translator avec un lien actif vers la page translate.yandex.ru doit être indiqué au-dessus ou au-dessous du résultat de la traduction.
Exigences de mise en page du texte
Le texte doit être précisé:
dans la description du produit logiciel;
Aide pour un produit logiciel
sur le site officiel du produit logiciel;
sur toutes les pages ou écrans où les données de service sont utilisées.
Eh bien, nous ne sommes pas des gens fiers, nous survivrons.
Comment ça marche
L'utilisateur nous écrit un message, nous lui demandons dans quelle langue il veut traduire la phrase. Après avoir demandé la traduction du texte et envoyé le résultat.
Implémentation technique
Obtenez la clé API
Nous utilisons
cette bibliothèquefrom yandex_translate import YandexTranslate
Nous lançons longpoll comme je l'ai décrit dans la 1ère partie.
if event.text == '':
Quelles sont les exceptions et ce qu'ils mangent
Exceptions - c'est une chose qui, en cas d'erreur, s'exécute et nous en informe. Pour gérer les exceptions, utilisez la construction try-except.
Essayons d'implémenter notre code sans cette construction.
-Traduction
-Quelle langue? Indiquez en deux lettres.
Par exemple: russe - ru, anglais - en
-en
-Saisissez la phrase que vous souhaitez traduire
-Hi Habr
-Traduit par le service Yandex.Translator translate.yandex.ru
[«Salut Habr»]
Eh bien, cela fonctionne, et pourquoi avons-nous besoin de vos exceptions?
Mais pourquoi:
-Traduction
-Quelle langue? Indiquez en deux lettres.
Par exemple: russe - ru, anglais - en
-abracadabra
-Saisissez la phrase que vous souhaitez traduire
-Hi Habr
...
En attendant, dans la console:
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
Et avec des exceptions:
-Traduction
-Quelle langue? Indiquez en deux lettres.
Par exemple: russe - ru, anglais - en
-Abracadabra
-Saisissez la phrase que vous souhaitez traduire
-Hi Habr
- Langue saisie incorrectement
Je vais essayer - sauf construire plus en détail:
try:
Je vais donner un exemple avec l'api wikipedia:
try: result = str(wikipedia.summary(event.text)) except wikipedia.exceptions.PageError: print(' ') except wikipedia.exceptions.DisambiguationError: print('')
Comme vous le comprenez, il peut y avoir plusieurs exceptions.
Sur ce, je vous dis au revoir. Tout le meilleur