babymarkt/deepl-php-lib

此包已被 废弃 且不再维护。作者建议使用 deeplcom/deepl-php 包。

支持PHP >= 7.3 && PHP <= 8.1 的DeepL API客户端库

v4.0.0 2022-05-24 14:08 UTC

README

废弃的库!

大家好,

在过去几个月里,我们没有给予这个项目太多关注。另一方面,DeepL已经为Python、.NET和Node.js开发了客户端库(见:API文档)。

由于有一个PHP库正在进行中 Github,并且我们维护库的记录并不如预期那样好,我们决定废弃这个库并内部转向官方库。

为了明确我们不会继续维护这个仓库,我们将将其存档。如果社区中有人想继续我们的工作,我们可以在README中添加一行,指向新的维护仓库。

否则,我们建议您查看来自 DeepL 的新库。

感谢多年来为这个项目做出贡献的每一个人。

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

DeepL API的简单PHP库。您可以每次请求翻译一个或多个文本字符串(最多50个)。

🇩🇪🇦🇹🇨🇭🇬🇧🇺🇸🇪🇸🇲🇽🇫🇷🇮🇹🇯🇵🇳🇱🇵🇱🇵🇹🇧🇷🇷🇺🇨🇳🇬🇷🇩🇰🇨🇿🇪🇪🇫🇮🇭🇺🇱🇹🇱🇻🇷🇴🇷🇸🇸🇰🇸🇪

官方DeepL API

变更日志

安装

如果您想在项目中使用此库,请使用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)。请参阅许可证文件获取更多信息。