mistralys / deepl-xml-translator
DeepL XML 翻译器。
2.0.2
2022-12-13 12:45 UTC
Requires
- ext-dom: *
- ext-openssl: *
- guzzlehttp/guzzle: ^7.4.2
- mistralys/application-utils: >=1.3.0
- scn/deepl-api-connector: dev-master
Requires (Dev)
- phpstan/phpstan: >=1.6.0
- phpunit/phpunit: >=9.5.20
README
DeepL XML 翻译器
这是一个可以翻译包含标记的字符串集合的PHP助手类。它使用DeepL的XML翻译功能,设计得非常易于使用。
安装
只需通过Composer在你的项目中引入此包
"require": { "mistralys/deepl-xml-translator" : "dev-master" }
查看Packagist页面:https://packagist.org.cn/packages/mistralys/deepl-xml-translator
使用方法
创建助手类的新实例
$translator = new \DeeplXML\Translator( 'YourAPIKey', // the DeepL API key to use to connect 'EN', // source language 'DE' // target language );
添加要翻译的字符串
$translator->addString('string1', 'Please translate me'); $translator->addString('string2', 'Please also translate me');
获取翻译结果
try { $translator->translate(); } catch(\DeeplXML\Translator_Exception $e) { // handle errors }
访问翻译后的字符串
一次性检索所有字符串
$strings = $translator->getStrings(); foreach($strings as $string) { $text = $string->getTranslatedText(); }
通过ID检索特定字符串
$string = $translator->getStringByID('string2'); $text = $string->getTranslatedText();
忽略字符串的一部分
为了避免字符串的部分被翻译,可以根据需要指定要忽略的字符。在发送翻译到DeepL之前,它们将被占位符替换,翻译后再恢复。
$string = $translator->addString('string1', 'Please ignore me'); // the text "ignore" will not be translated in the string $string->addIgnoreString('ignore');
DeepL API连接
翻译器类使用SC-Networks/deepl-api-connector DeepL API包在后台连接到服务。
如果您需要更多高级功能,例如翻译文件等,您可以直接使用完全配置的连接器实例。
$api = $translator->getConnector(); // do something with it
运行测试
默认情况下,单元测试将仅测试翻译器自身的离线API。要启用与DeepL API的实时测试,将文件tests/apikey.dist.php
重命名为tests/apikey.php
,并编辑它以插入您的API密钥。将自动启用附加测试。