itpanda-llc / yandex-translate-sdk
Library for integration with the Yandex Translate machine translation service
Installs: 23 780
Dependents: 2
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 2
Open Issues: 3
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
This package is auto-updated.
Last update: 2025-02-21 16:30:44 UTC
README
Библиотека для интеграции с сервисом машинного перевода "Yandex Translate"
Ссылки
- Разработка
- О проекте (Yandex Cloud)
- О проекте (Yandex Identity and Access Management)
- О проекте (Yandex Translate)
- Документация (Yandex Cloud)
- Документация (Yandex Identity and Access Management)
- Документация (Yandex Translate)
Возможности
- Аутентификация в API "Yandex Cloud"
- Определение языка текста
- Получение списка поддерживаемых языков
- Перевод текста
Требования
- PHP >= 7.2
- cURL
- JSON
- mbstring
Установка
composer require itpanda-llc/yandex-translate-sdk
Подключение
require_once 'vendor/autoload.php';
Использование
Создание сервиса / Аутентификация
- С аккаунтом на Яндексе (OAuth-токен)
use Panda\Yandex\TranslateSdk; try { /* * OAuth-токен * ID каталога */ $cloud = new TranslateSdk\Cloud('oAuthToken', 'folderId'); } catch (TranslateSdk\Exception\ClientException | TypeError $e) { echo $e->getMessage(); }
- С использованием сервисного аккаунта / федеративного пользователя (IAM-токен)
use Panda\Yandex\TranslateSdk; try { // IAM-токен $cloud = new TranslateSdk\Cloud('iamToken'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- С использованием сервисного аккаунта (API-ключ)
use Panda\Yandex\TranslateSdk; try { // API-ключ $cloud = TranslateSdk\Cloud::createApi('apiKey'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Определение языка текста
- Создание запроса
use Panda\Yandex\TranslateSdk; try { // Текст, язык которого требуется определить $detect = new TranslateSdk\Detect('Привет, разработчик!'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- Установка параметров
use Panda\Yandex\TranslateSdk; try { // Текст, язык которого требуется определить $detect->setText('Привет, разработчик!') // Наиболее вероятный язык ->addHint('ru') ->addHint('uk') ->addHint('be'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- Выполнение запроса
use Panda\Yandex\TranslateSdk; try { print_r($cloud->request($detect)); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Получение списка поддерживаемых языков
use Panda\Yandex\TranslateSdk; try { print_r($cloud->request(new TranslateSdk\Languages)); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Перевод текста
- Создание запроса
use Panda\Yandex\TranslateSdk; try { /* * Строка для перевода * Язык, на который переводится текст */ $translate = new TranslateSdk\Translate('Привет, разработчик!', 'en'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- Установка параметров
use Panda\Yandex\TranslateSdk; try { // Язык, на котором написан исходный текст $translate->setSourceLang('ru') // Язык, на который переводится текст ->setTargetLang('en'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); } // Формат текста $translate->setFormat(TranslateSdk\Format::PLAIN_TEXT); try { // Строка для перевода $translate->addText('Сейчас ты увидишь, как работает перевод текста!') ->addText('Это удивительно!') ->addText('Технологии не стоят на месте..') /* * Текст на языке оригинала * Текст на языке перевода */ ->addGlossary('текста', 'greeting text') ->addGlossary('удивительно', 'super') ->addGlossary('технологии', 'services'); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }
- Выполнение запроса
use Panda\Yandex\TranslateSdk; try { print_r($cloud->request($translate)); } catch (TranslateSdk\Exception\ClientException $e) { echo $e->getMessage(); }