PHP скрипт для перевод текста через API Яндекс.Переводчик

31.08.2019
PHP скрипт для перевод текста через API Яндекс.Переводчик

Если вы пишете мультиязычные сайты или приложения на PHP,  тогда вам нужно перевести текст сразу на несколько языков и загрузить сразу несколько языков  в базу. Конечно можно сделать несколько полей ввода и вносить каждый язык отдельно, но это очень долго и это не наш путь.


Для решения задачи заполнения многоязычных сайтов или приложений можно воспользоваться услугами онлайн перевода. Есть два более-менее стабильных сервиса перевода. Первый от Google, второй от Яндекса. Первый мы отметаем так как он стал полностью платный, а вот сервис “Яндекс.Переводчик” дает возможность бесплатно переводить довольно внушительный объём текста, вот им мы и воспользуемся.


Допустим нам нужно перевести сайт на 3 языка: Английский, Французский и Немецкий.


Для начала Вам нужно получить API-ключ на сайте Яндекса переводчика, обычно это можно сделать по адресу: https://translate.yandex.ru/developers/keys


Далее мы приступаем к написанию нашего скрипта:

<?php 
$word = 'Мы переводим этот текст'; // Текст для перевода
$key = 'You API Key'; // Ваш API ключь

// Перевод на английский
$data = array(
    'key' => $key,
    'text' => $word,
    'lang' => 'en',
    'format' => 'plain',
    'options' => 1,
);
$curlObject = curl_init();
curl_setopt($curlObject, CURLOPT_URL, 'https://translate.yandex.net/api/v1.5/tr.json/translate');
curl_setopt($curlObject, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObject, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curlObject, CURLOPT_POST, true);
curl_setopt($curlObject, CURLOPT_POSTFIELDS, http_build_query($data,'','&'));
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($curlObject);
curl_close($curlObject);
if ($responseData === false) {
    throw new Exception('Response false');
}
$data = json_decode($responseData, true);
$data_en = $data['text'][0];

// Перевод на французский
$data = array(
    'key' => $key,
    'text' => $word,
    'lang' => 'fr',
    'format' => 'plain',
    'options' => 1,
);
$curlObject = curl_init();
curl_setopt($curlObject, CURLOPT_URL, 'https://translate.yandex.net/api/v1.5/tr.json/translate');
curl_setopt($curlObject, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObject, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curlObject, CURLOPT_POST, true);
curl_setopt($curlObject, CURLOPT_POSTFIELDS, http_build_query($data,'','&'));
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($curlObject);
curl_close($curlObject);
if ($responseData === false) {
    throw new Exception('Response false');
}
$data = json_decode($responseData, true);
$data_fr = $data['text'][0];

// Перевод на немецкий
$data = array(
    'key' => $key,
    'text' => $word,
    'lang' => 'de',
    'format' => 'plain',
    'options' => 1,
);
$curlObject = curl_init();
curl_setopt($curlObject, CURLOPT_URL, 'https://translate.yandex.net/api/v1.5/tr.json/translate');
curl_setopt($curlObject, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObject, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curlObject, CURLOPT_POST, true);
curl_setopt($curlObject, CURLOPT_POSTFIELDS, http_build_query($data,'','&'));
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($curlObject);
curl_close($curlObject);
if ($responseData === false) {
    throw new Exception('Response false');
}
$data = json_decode($responseData, true);
$data_de = $data['text'][0];
?>

Теперь у нас есть 3 переменные:  $data_en, $data_fr, $data_de

Вы можете записать их в базу данный или вывести на экран.

Проверяем как работает:

<strong>Результат</strong>:<br><br>
<strong>English:</strong> <?php echo $data_en ?><br>
<strong>Français (French):</strong> <?php echo $data_fr ?><br>
<strong>Deutsch (German):</strong> <?php echo $data_de ?><br>

Результат:
English: We translate this text
Français (French): Nous traduisons ce texte
Deutsch (German): Wir übersetzen diese Text

Для добавления комментариев вы должны авторизоваться
СайтФирмы
Телефон:
+7 (917) 43-73-926
2012 – 2024. Веб-студия СайтФирмы (ИП Федотов Илья Александрович) - Создание сайтов в России. Сайт может содержать контент, не предназначенный для лиц младше 16 лет.
Сайт создан в СайтФирмы.рф
Меню:
Главная
Контакты
Блог
Создание сайтов в России
Политика обработки персональных данных
Личный кабинет
Яндекс.Метрика
Мы в ВКонтактеМы в YouTube
Обратный звонок
Оставьте ваш номер телефона.
Мы вам перезвоним!
Ваш телефон: *
Защита от роботов.
Введите цифры с картинки: *
WhatsApp
Заказ
Оставьте нам ваши контакты.
Мы вам перезвоним!
Ваше имя: *
Ваш телефон: *
Защита от роботов.
Введите цифры с картинки: *
Продолжая, Вы принимаете нашу политику использования cookies. Мы используем файлы cookies для улучшения работы сайта. Чтобы узнать больше, ознакомьтесь с нашей Политикой обработки персональных данных
Подтверждаю