Yandex Translate API создания переводчика на Python

Статьи

Yandex Translate API создания переводчика на Python

Автор: Рамис, 26 сентября 2019

⚠ Предупреждение:

Яндекс приостановили выдачу ключей для бесплатного использования API Переводчика, поэтому прошу сюда API Google Translate перевод текста на Python

API Яндекс.Переводчик

С помощью API можно получить доступ к онлайн-сервису машинного перевода Яндекса. Он поддерживает более 90 языков и умеет переводить отдельные слова и целые тексты. Этот API позволяет встроить Яндекс.Переводчик в мобильное приложение или веб-сервис для конечных пользователей. Или же переводить большие объёмы текста — например, техническую документацию.

Как работает Яндекс.Переводчик

Как только пользователь вводит текст для перевода, Яндекс.Переводчик передает этот текст сразу двум системам: и нейронной сети, и статистическому переводчику.

яндекс переводчик

Получаем API Ключ

Авторизовываемся на сайте Яндекс, переходим по ссылке на страницу для разработчиков, нажимаем создать новый ключ, и радуемся :) Выглядеть он будем примерно так:

trnsl.1.1.20190924T114701Z.6515eb42f84cfec7.cd06f2d928f870b8b0d111...

Python код

Для работы с HTTP запросами будем использовать мощщщную библиотеку requests.

Код:

import requests
def transfer(mytext):
    key = 'API KEY' # API KEY
    data = {'lang':'ru',
        'key':key,
        'text':mytext, 
        'format':'plain'
        }  # Параметры запроса
    r = requests.post('https://translate.yandex.net/api/v1.5/tr.json/translate', data = data).json() # POST запрос
    r['mytext'] = mytext # Добавим наш текст
    return r # ответ

print(transfer('Hello, i love Python'))
print('Статус: ', transfer('Hello, i love Python')['code'])
print('Наш текст: ', transfer('Hello, i love Python')['mytext'])
print('Перевод текста: ', transfer('Hello, i love Python')['text'][0])

Ответ:

{'code': 200, 'lang': 'en-ru', 'text': ['Привет, я люблю питон'], 'mytext': 'Hello, i love Python'}
Статус:  200
#Наш текст:  Hello, i love Python
#Перевод текста:  Привет, я люблю питон

Параметры POST запроса:

  • key Ваш API Ключ.
  • text Текст, который необходимо перевести.
  • lang язык перевода. (Поддерживаемые языки найдете ниже)

В виде пары кодов языков («с какого»-«на какой»), разделенных дефисом. Например, en-ru обозначает перевод с английского на русский.

В виде кода конечного языка (например ru). В этом случае сервис пытается определить исходный язык автоматически

  • format Формат текста.

plain : текст без разметки (значение по умолчанию)

html : текст в формате HTML

Коды ответов:

яндекс переводчик коды

⚠ Ограничения:

  • Для POST-запросов максимальный размер передаваемого текста составляет 10 000 символов.
  • В GET-запросах ограничивается не размер передаваемого текста, а размер всей строки запроса, которая кроме текста может содержать и другие параметры.
  • Максимальный размер строки — от 2 до 10 КБ (зависит от версии используемого браузера).

Поддерживаемые языки:

яндекс переводчик языки

Для завершения :)

import requests
def transfer(mytext):
    key = 'API KEY'
    data = {'lang':'ru',
            'key':key,
            'text':mytext, 
            'format':'plain'
            } 
    r = requests.post('https://translate.yandex.net/api/v1.5/tr.json/translate', data = data).json()
    if r['code'] == 200:
        return r['text'][0]
    else:
        return 'error'

while True:
    text = input('Введите текст: ')
    print('Перевод: ',transfer(text))

python переводчик