maxvanceffer / microsoft-translator
用于调用Microsoft Translator V2 API的库
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:45:10 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”和“客户端密钥”。这些可以用于实例化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,并将占位符值替换为其真实值(即客户端ID、客户端密钥和存储口语文本文件的存储位置)。
相关项目
有一个MicrosoftTranslatorBundle,它使Microsoft翻译在Symfony2项目中可用。
还有一个MicrosoftTranslatorServiceProvider,它将Microsoft翻译和相关服务注册到Silex应用程序中。
待办事项
还有一些待实现的调用,还有一些待添加的测试。