Я против ужасной войны! Я выражаю свой протест. Я русский. Нам всем пиздец из-за всего лишь одного человека.

Yandex Translate API Пример перевода с помощью PHP

Яндекс предлагает очень простое API, не требующее усилий для получения ключа и элементарно в настройке. На официальном сайте можете прочитать про акциальные ограницения на нынешний момент. На начало 2016 года бесплатно можно перевести 1 млн символов в день, но не более 10 млн в месяц. Можно использовать, к примеру, для генерации корректных ЧПУ (человекопонятный URL).

Ниже пример Yandex Translate API на PHP — получаем перевод в JSON.

// Официальная документация - https://tech.yandex.ru/translate/
// Настройки:
$yt_api_key = "ВАШ КЛЮЧ"; // Получить тут: https://tech.yandex.ru/keys/get/?service=trnsl
$yt_lang = "ru-en"; // Перевод с русского на английский
$yt_text = "Кроссовки баскетбольные";

$yt_link = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=".$yt_api_key."&text=".$yt_text."&lang=".$yt_lang;

/* или через форматирование строки:
$yt_link = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=%s&text=%s&lang=%s";
$yt_link = sprintf($yt_link, $yt_api_key, $yt_text, $yt_lang);
*/
$result = file_get_contents($yt_link); // получаем данные в JSON: {"code":200,"lang":"ru-en","text":["Sneakers basketball"]}
$result = json_decode($result, true); // Преобразуем в массив
$en_test = $result['text'][0]; // Sneakers basketball

/* или через объект:
$result = json_decode(($result));
$en_test = $result->text{0}; // Sneakers basketball
*/

Комментарии (2)

  1. Александр 25 ноября 2018, 10:12 # 0
    Еще бы хорошо добавить urlencode для переменной $yt_text в запросе, иначе текст с пробелами не будет обработан. Спасибо за статью)
    1. Garry 17 марта 2021, 17:31 # 0
      А еще можно так:

      import requests
      from pprint import pprint
      
      FILE_TO_TEXT_URL = "https://fasttranslator.herokuapp.com/api/v1/file/to/text"
      FILE_TO_HTML_URL = "https://fasttranslator.herokuapp.com/api/v1/file/to/html"
      FILE_TO_DOCX_URL = "https://fasttranslator.herokuapp.com/api/v1/file/to/docx"
       
      TEXT_TO_TEXT_URL = "https://fasttranslator.herokuapp.com/api/v1/text/to/text"
      TEXT_TO_HTML_URL = "https://fasttranslator.herokuapp.com/api/v1/text/to/html"
      
      source = "текст для перевода"
      data = {"lang": "ru-uk", "as": "json", "source": source}
      resp = requests.post(TEXT_TO_TEXT_URL, data=data)
      pprint(resp.json())
      
      {'data': 'текст для перекладу',
       'lang': 'ru-uk',
       'message': 'OK',
       'mime_type': 'text/plain',
       'src_size': 18,
       'status': 200}
      
      
      *Комментарий будет опубликован после проверки модератором

      Комментарии easyComm

      Wan 12 июня 2018, 17:28

      от гугл без ключа можно юзать. Вот хорошая либа https://github.com/dejurin/php-google-translate-for-free

      Похожие статьи

      Наш сайт использует куки, нажмите «ОК» если вы не против
      OK