itpanda-llc / yandex-translate-sdk
用于与Yandex Translate机器翻译服务集成的库
dev-master
2021-05-16 05:50 UTC
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
This package is auto-updated.
Last update: 2024-09-21 15:43:06 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(); }