topaz2 / translator
基于API的调用翻译库。例如:Microsoft, Google
v0.4.2
2014-01-29 10:14 UTC
Requires
- doctrine/common: >=2.2,<2.4-dev
- kriswallsmith/buzz: 0.*
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is not auto-updated.
Last update: 2024-09-24 03:19:48 UTC
README
由Matthias Noback编写
安装
使用Composer,将其添加到 composer.json
{
"require": {
"matthiasnoback/microsoft-translator": "dev-master"
}
}
然后使用Composer二进制文件
php composer.phar install
用法
此库使用Buzz浏览器调用Microsoft Translator V2 API。
您需要在Azure DataMarket注册您的应用程序,从而检索“客户端ID”和“客户端密钥”。这些可以用于实例化依赖于MicrosoftTranslator
的AccessTokenProvider
。
<?php use Buzz\Browser; use MatthiasNoback\MicrosoftOAuth\AccessTokenProvider; use MatthiasNoback\MicrosoftTranslator\MicrosoftTranslator; $browser = new Browser(); $clientId = '[YOUR-CLIENT-ID]'; $clientSecret = '[YOUR-CLIENT-SECRET]'; $accessTokenProvider = new AccessTokenProvider($browser, $clientId, $clientSecret); $translator = new MicrosoftTranslator($browser, $accessTokenProvider);
可选:启用访问令牌缓存
每次调用翻译服务之前,都会调用Microsoft的OAuth服务器。然而,每个访问令牌可以缓存10分钟,因此您还应该使用内置的AccessTokenCache
。
<?php use MatthiasNoback\MicrosoftOAuth\AccessTokenCache; use Doctrine\Common\Cache\ArrayCache; $cache = new ArrayCache(); $accessTokenCache = new AccessTokenCache($cache); $accessTokenProvider->setCache($accessTokenCache);
实际的缓存提供者可以是任何东西,只要它实现了Doctrine Common库中的Cache
接口。
调用
翻译字符串
$translatedString = $translator->translate('This is a test', 'nl', 'en'); // $translatedString will be 'Dit is een test', which is Dutch for...
翻译字符串并获取多个翻译
$matches = $translator->getTranslations('This is a test', 'nl', 'en'); foreach ($matches as $match) { // $match is an instance of MatthiasNoback\MicrosoftTranslator\ApiCall\TranslationMatch $degree = $match->getDegree(); $translatedText = $match->getTranslatedText(); }
检测字符串的语言
$text = 'This is a test'; $detectedLanguage = $translator->detect($text); // $detectedLanguage will be 'en'
获取字符串的口语版本
$text = 'My name is Matthias'; $spoken = $translator->speak($text, 'en', 'audio/mp3', 'MaxQuality'); // $spoken will be the raw MP3 data, which you can save for instance as a file
测试
查看测试以了解您可以使用API做什么。
要完全启用测试套件,您需要将phpunit.xml.dist
复制到phpunit.xml
,并用实际值替换占位符(即客户端ID、客户端密钥和存储口语文本文件的存储位置)。
相关项目
有一个MicrosoftTranslatorBundle,它使Microsoft翻译在Symfony2项目中可用。
还有一个MicrosoftTranslatorServiceProvider,它将Microsoft翻译和相关的服务注册到Silex应用程序中。
待办事项
还有一些要实现的调用,以及一些要添加的测试。