Salam, Habr. Artikel ini merupakan kelanjutan dari artikel
ini . Sebelum membaca, saya sangat menyarankan Anda membacanya jika Anda belum pernah melakukan ini sebelumnya.
Hari ini Anda akan belajar:
- Cara mendapatkan lebih dari satu jawaban, meskipun pertanian kolektif
- Bagaimana menghubungkan penerjemah Yandex ke ini
- Dan bagaimana menulis kepada pengguna bahwa ia melakukan semua kesalahan
Penerjemah Api Yandex
Penerjemah Yandex memiliki api yang bagus dan kami akan menggunakannya. Kami dengan cermat mempelajari
dokumentasi dan pergi ke pertempuran. Tapi di sini Yandex menempatkan kita seekor babi.
Persyaratan untuk menggunakan hasil terjemahan
Menurut Lisensi untuk menggunakan Yandex.Translator, teks Diterjemahkan oleh layanan Yandex.Translator dengan tautan aktif ke halaman translate.yandex.ru harus ditunjukkan di atas atau di bawah hasil terjemahan.
Persyaratan Tata Letak Teks
Teks harus ditentukan:
dalam deskripsi produk perangkat lunak;
Bantuan untuk produk perangkat lunak
di situs web resmi produk perangkat lunak;
di semua halaman atau layar tempat data layanan digunakan.
Yah, kita bukan orang yang sombong, kita akan bertahan hidup.
Bagaimana cara kerjanya
Pengguna menulis pesan kepada kami, kami bertanya bahasa apa yang ia inginkan untuk menerjemahkan frasa tersebut. Setelah kami meminta teks untuk diterjemahkan dan mengirim hasilnya.
Implementasi teknis
Dapatkan kunci api
Kami menggunakan
perpustakaan inifrom yandex_translate import YandexTranslate # translate = YandexTranslate(' ')
Kami menendang longpoll seperti yang saya jelaskan di bagian 1.
if event.text == '': # "" if event.from_user: vk.messages.send( # user_id=event.user_id, message=' ? .\n : - ru, - en' #C " ? .\n : - ru, - en". ) elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' ? .\n : - ru, - en' ) flag = 0 # 2- for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: # trTo = event.text # if event.from_user: vk.messages.send( # user_id=event.user_id, message=' , ' ) elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' , ' ) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: # trNormal = 1 # try: #, trFrom = translate.detect(event.text) # trResult = translate.translate(event.text, trFrom + '-' + trTo) # except Exception as e: # - trNormal = 0 # print("Exception:", e) # pass if trNormal == 1: # if event.from_user: vk.messages.send( # user_id=event.user_id, message=' «.» translate.yandex.ru\n' + str(trResult['text']) ) flag = 1 # 2- break elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' «.» translate.yandex.ru\n' + str(trResult['text']) ) flag = 1 break if trNormal == 0: # if event.from_user: vk.messages.send( # user_id=event.user_id, message=' ' #.. 99% - , ) flag = 1 # 2- break elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' ' ) flag = 1 break if flag == 1: # 2- break
Apa itu pengecualian dan apa yang mereka makan
Pengecualian - ini adalah hal yang, jika terjadi kesalahan, berjalan dan memberi tahu kami tentang hal itu. Untuk menangani pengecualian, gunakan konstruksi coba - kecuali.
Mari kita coba menerapkan kode kita tanpa konstruk ini.
-Terjemahan
Bahasa apa? Tunjukkan dalam dua huruf.
Misalnya: Rusia - ru, Inggris - en
-en
-Masukkan frasa yang ingin Anda terjemahkan
-Hi Habr
-Diterjemahkan oleh layanan Yandex.Translator translate.yandex.ru
['Hai Habr']
Ya, itu berhasil, dan mengapa kami membutuhkan pengecualian Anda?
Tapi mengapa:
-Terjemahan
Bahasa apa? Tunjukkan dalam dua huruf.
Misalnya: Rusia - ru, Inggris - en
-abracadabra
-Masukkan frasa yang ingin Anda terjemahkan
-Hi Habr
...
Sementara itu, di konsol:
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
Dan dengan pengecualian:
-Terjemahan
Bahasa apa? Tunjukkan dalam dua huruf.
Misalnya: Rusia - ru, Inggris - en
-Abracadabra
-Masukkan frasa yang ingin Anda terjemahkan
-Hi Habr
- Bahasa yang dimasukkan tidak benar
Saya akan melihat coba - kecuali membuat lebih detail:
try: #sample code except Exception: #
Saya akan memberikan contoh dengan api wikipedia:
try: result = str(wikipedia.summary(event.text)) except wikipedia.exceptions.PageError: print(' ') except wikipedia.exceptions.DisambiguationError: print('')
Seperti yang Anda pahami, mungkin ada beberapa pengecualian.
Tentang ini saya mengucapkan selamat tinggal kepada Anda. Semua yang terbaik