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

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

      Примеры работы с API MODX

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

      Универсальная форма обратной связи — feedBackForm

      Как поменять версию PHP, используемую в командной строке на Windows

      Как контролировать кэш CSS и скриптов

      Как поменять язык в Faker

      Транслитерация URL в Laravel. Примеры str_slug()

      Простое логирование

      Курсы валют с cbr.ru на PHP

      Разные фишки, заготовки

      Laravel Excel - Базовый экспорт

      Получить вложенный массив из плоского

      Namespace на примерах - Как понять пространства имен в PHP

      Заготовки для автоматического заполнения товарами магазина 1.5.5.1.2

      Как сделать middleware в Laravel 6 - простой пример

      Как обработать POST данные в PHP

      Примеры работы с API

      Ответ для сервиса moneta.ru

      Загрузить файл для постобработки

      Получить время выполнения PHP скрипта. Решение в 3 строки кода

      Получить курсы валют с cbr.ru на PHP с кэшированием результатов

      Экспорт маршрутов из Laravel в JSON файл

      Фиксированная сортировка массива на основе хэша

      Вывести список всех файлов на сервере (и размер файла)

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