post2go / microsoft-translator
用于调用 Microsoft Translator V2 API 的库
v0.5.1
2014-09-12 22:27 UTC
Requires
- doctrine/common: 2.*
- kriswallsmith/buzz: 0.*
Requires (Dev)
- phpunit/phpunit: ~3.7
README
作者:Matthias Noback
安装
使用 Composer,在 composer.json
中添加
{
"require": {
"post2go/microsoft-translator": "dev-master"
}
}
然后使用 Composer 二进制文件
php composer.phar install
用法
此库使用 Buzz 浏览器调用 Microsoft Translator V2 API。
您需要在 Azure DataMarket 上注册您的应用程序,从而获取 "client id" 和 "client secret"。这些可以用于实例化 AccessTokenProvider
,它是 MicrosoftTranslator
所依赖的
<?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);
可选:启用访问令牌缓存
每次调用翻译服务之前,都会先调用微软的 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
,并用其实际值替换占位符(即 client id、client secret 以及存储语音文本文件的位置)。
相关项目
有一个 MicrosoftTranslatorBundle,它使 Microsoft translator 在 Symfony2 项目中可用。
还有一个 MicrosoftTranslatorServiceProvider,它将 Microsoft translator 和相关服务注册到 Silex 应用程序中。
待办事项
还有一些调用要实现,还有一些测试要添加。