⚠ Предупреждение:
Яндекс приостановили выдачу ключей для бесплатного использования API Переводчика, поэтому прошу сюда API Google Translate перевод текста на Python или Машинный перевод текста на 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))