scn / deepl-api-connector
deepl.com API 的非官方 PHP 客户端
3.3.0
2024-03-08 05:39 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- php-http/discovery: ^1.13
- php-http/multipart-stream-builder: ^1.1
- psr/http-factory: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- guzzlehttp/guzzle: ^7.0
- nyholm/psr7: ^1.4
- phpstan/phpstan: ^1.4
- phpstan/phpstan-mockery: ^1.0
- phpstan/phpstan-strict-rules: ^1.1
- phpunit/phpunit: ^9
README
- 关于 Deepl 的信息:https://www.deepl.com
- Deepl API 文档:https://www.deepl.com/api.html
要求
- php (请参考下表以了解支持的 php 版本)
- PSR17 (Http-Factories) 的实现 (可用包) 和 PSR18 (Http-Client) 的实现 (可用包)
- deepl 免费或专业 API 密钥
兼容性
安装
通过 Composer
$ composer require scn/deepl-api-connector
使用方法
创建 API 客户端
DeeplClientFactory
支持自动检测已安装的 psr17/psr18 实现。只需调用 create
方法,即可开始使用。
require_once __DIR__ . '/vendor/autoload.php'; use \Scn\DeeplApiConnector\DeeplClientFactory; $deepl = DeeplClientFactory::create('your-api-key');
可选地,您可以将已创建的 HttpClient、StreamFactory 和 RequestFactory 实例作为参数传递给 create 方法。
require_once __DIR__ . '/vendor/autoload.php'; use \Scn\DeeplApiConnector\DeeplClientFactory; $deepl = DeeplClientFactory::create( 'your-api-key', $existingHttpClientInstance, $existingStreamFactoryInstance, $existingRequestFactoryInstance, );
如果需要使用自定义 HTTP 客户端实现,也可以通过 DeeplClientFactory::create 方法实现。客户端必须支持 PSR18。
获取 API 密钥的使用情况
require_once __DIR__ . '/vendor/autoload.php'; $deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key'); try { $usageObject = $deepl->getUsage(); }
获取翻译
require_once __DIR__ . '/vendor/autoload.php'; $deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key'); try { $translation = new \Scn\DeeplApiConnector\Model\TranslationConfig( 'My little Test', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE ..., ..., ); $translationObject = $deepl->getTranslation($translation); }
require_once __DIR__ . '/vendor/autoload.php'; $deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key'); try { $translation = new \Scn\DeeplApiConnector\Model\TranslationConfig( 'My little Test', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE ); $translationObject = $deepl->translate('some text', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE); }
您还可以一次性翻译一批文本,请参阅 example/translate_batch.php
将文件添加到翻译队列
require_once __DIR__ . '/vendor/autoload.php'; $deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key'); try { $fileTranslation = new \Scn\DeeplApiConnector\Model\FileTranslationConfig( file_get_contents('test.txt'), 'test.txt', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_EN, \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE ); $fileSubmission = $deepl->translateFile($fileTranslation); $fileSubmission->getDocumentId() }
检查文件翻译状态
所有翻译状态都可在 FileStatusEnum
中找到
require_once __DIR__ . '/vendor/autoload.php'; $deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key'); try { $fileTranslation = new \Scn\DeeplApiConnector\Model\FileTranslationConfig( file_get_contents('test.txt'), 'test.txt', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_EN, \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE ); $fileSubmission = $deepl->translateFile($fileTranslation); $translationStatus = $deepl->getFileTranslationStatus($fileSubmission); }
获取翻译文件内容
require_once __DIR__ . '/vendor/autoload.php'; $deepl = \Scn\DeeplApiConnector\DeeplClientFactory::create('your-api-key'); try { $fileTranslation = new \Scn\DeeplApiConnector\Model\FileTranslationConfig( file_get_contents('test.txt'), 'test.txt', \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_EN, \Scn\DeeplApiConnector\Enum\LanguageEnum::LANGUAGE_DE ); $fileSubmission = $deepl->translateFile($fileTranslation); $file = $deepl->getFileTranslation($fileSubmission); echo $file->getContent(); }
检索支持的语言
请参阅 example/retrieve_supported_languages.php
处理术语表
测试
$ composer test
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。