babymarkt / deepl-php-lib
Requires
- php: >=7.3 <8.2
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpmd/phpmd: ^2.10
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3
This package is auto-updated.
Last update: 2022-05-24 14:21:58 UTC
README
废弃的库!
大家好,
在过去几个月里,我们没有给予这个项目太多关注。另一方面,DeepL已经为Python、.NET和Node.js开发了客户端库(见:API文档)。
由于有一个PHP库正在进行中 Github,并且我们维护库的记录并不如预期那样好,我们决定废弃这个库并内部转向官方库。
为了明确我们不会继续维护这个仓库,我们将将其存档。如果社区中有人想继续我们的工作,我们可以在README中添加一行,指向新的维护仓库。
否则,我们建议您查看来自 DeepL 的新库。
感谢多年来为这个项目做出贡献的每一个人。
DeepL API的简单PHP库。您可以每次请求翻译一个或多个文本字符串(最多50个)。
🇩🇪🇦🇹🇨🇭🇬🇧🇺🇸🇪🇸🇲🇽🇫🇷🇮🇹🇯🇵🇳🇱🇵🇱🇵🇹🇧🇷🇷🇺🇨🇳🇬🇷🇩🇰🇨🇿🇪🇪🇫🇮🇭🇺🇱🇹🇱🇻🇷🇴🇷🇸🇸🇰🇸🇪
安装
如果您想在项目中使用此库,请使用Composer。
composer require babymarkt/deepl-php-lib
使用方法
使用您的认证密钥创建一个实例
use \BabyMarkt\DeepL\DeepL; $authKey = '<AUTH KEY>'; $deepl = new DeepL($authKey);
使用DeepL API Pro
use \BabyMarkt\DeepL\DeepL; $authKey = '<AUTH KEY>'; $deepl = new DeepL($authKey,2,'api-free.deepl.com');
翻译
翻译一个文本
$translatedText = $deepl->translate('Hallo Welt', 'de', 'en'); echo $translatedText[0]['text'].PHP_EOL;
翻译多个文本
$text = array( 'Hallo Welt', 'Wie geht es dir', 'Macht doch einfach mal' ); $translations = $deepl->translate($text, 'de', 'en'); foreach ($translations as $translation) { echo $translation['text'].PHP_EOL; }
参数 | 描述 |
---|---|
$text | 要翻译的文本。仅支持UTF8编码的纯文本。参数可以指定为数组,翻译将按照请求的顺序返回。数组中的每个值可以包含多个句子。一次请求可以发送最多50个文本进行翻译。 |
$sourceLang | 要翻译文本的语言。 默认值: "" (DeepL将自动检测) |
$targetLang | 文本应翻译成的语言。 默认值: en |
$tagHandling | 设置应处理哪种类型的标签。目前可用的选项:"xml"。 |
$ignoreTags | 表示不进行翻译的XML标签的数组。 默认值: null |
$formality | 设置翻译文本是否应偏向正式或非正式语言。此功能目前对所有目标语言都有效,除了"EN"(英语),"EN-GB"(英国英语),"EN-US"(美国英语),"ES"(西班牙语),"JA"(日语)和"ZH"(中文)。 可能选项有 "default"(默认) "more" - 对于更正式的语言 "less" - 对于更非正式的语言 |
$splitSentences | 总是导致分段的XML标签数组 默认值: null |
$preserveFormatting | 设置翻译引擎是否应尊重原始格式,即使它通常也会纠正某些方面。可能的值包括 "0"(默认) "1" 此设置影响的格式方面包括 句子开头和结尾的标点符号 句子开头的字母大小写 |
$nonSplittingTags | 逗号分隔的XML标签列表,这些标签永远不会分段。 默认值: null |
$outlineDetection | 见:https://www.deepl.com/docs-api/handling-xml/outline-detection/ 默认值:1 |
$splittingTags | 总是导致分段的XML标签数组。 默认值: null |
支持的语言
在版本2中,我们移除了内部支持语言列表。现在,您可以直接从DeepL获取支持语言数组。
$languagesArray = $deepl->languages(); foreach ($languagesArray as $language) { echo 'Name: '.$language['name'].' Api-Shorthand: '.$language['language'].PHP_EOL; }
检查支持的语言
$sourceLanguagesArray = $deepl->languages('source'); foreach ($sourceLanguagesArray as $sourceLanguage) { echo 'Name: '.$sourceLanguage['name'].' Api-shorthand: '.$sourceLanguage['language'].PHP_EOL; }
检查支持的目标语言
$targetLanguagesArray = $deepl->languages('target'); foreach ($targetLanguagesArray as $targetLanguage) { echo 'Name: '.$targetLanguage['name'].' Api-Shorthand: '.$targetLanguage['language'].PHP_EOL; }
使用情况监控
您现在可以检查翻译了多少内容,以及限制。
$usageArray = $deepl->usage(); echo 'You have used '.$usageArray['character_count'].' of '.$usageArray['character_limit'].' in the current billing period.'.PHP_EOL;
术语表
创建术语表
$glossary = $deepl->createGlossary('MyGlossary', ['Hallo' => 'Hello'], 'de', 'en');
参数 | 描述 |
---|---|
$name | 术语表名称 |
$entries | 条目数组 |
$sourceLanguage | 术语表规则应用到的源语言 |
$targetLanguage | 术语表规则应用到的目标语言 |
删除术语表
$glossary = $deepl->deleteGlossary($glossaryId);
参数 | 描述 |
---|---|
$glossaryId | 术语表uuid(由DeepL在创建术语表时设置) |
列出术语表
use \BabyMarkt\DeepL\Glossary; $glossaries = $deepl->listGlossaries(); foreach ($glossaries as $glossary) { var_dump($glossary); }
获取术语表元信息:创建日期,术语表是否准备就绪...
use \BabyMarkt\DeepL\Glossary; $glossaryInformation = $deepl->glossaryInformation($glossaryId); var_dump($glossaryInformation);
参数 | 描述 |
---|---|
$glossaryId | 术语表uuid(由DeepL在创建术语表时设置) |
获取术语表条目
$entries = $deepl->glossaryEntries($glossaryId); foreach ($entries as $sourceLangText => $targetLangText) { echo $sourceLangText .' > '.$targetLangText; }
参数 | 描述 |
---|---|
$glossaryId | 术语表uuid(由DeepL在创建术语表时设置) |
配置cURL请求
如果您需要使用代理,您可以配置底层curl客户端使用它。您还可以指定超时,以避免在DeepL不可达时等待几分钟。
$deepl->setTimeout(10); //give up after 10 seconds $deepl->setProxy('http://corporate-proxy.com:3128'); $deepl->setProxyCredentials('username:password');
测试
运行PHP_CodeSniffer测试
composer cs
运行PHPMD测试
composer md
运行PHPUnit测试
composer test
运行所有测试
composer test:all
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。