maxvanceffer/microsoft-translator

用于调用Microsoft Translator V2 API的库

v0.4.2 2014-01-29 10:14 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:45:10 UTC


README

由Matthias Noback编写

Build Status Scrutinizer Quality Score

安装

使用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、客户端密钥和存储口语文本文件的存储位置)。

Build Status

相关项目

有一个MicrosoftTranslatorBundle,它使Microsoft翻译在Symfony2项目中可用。

还有一个MicrosoftTranslatorServiceProvider,它将Microsoft翻译和相关服务注册到Silex应用程序中。

待办事项

还有一些待实现的调用,还有一些待添加的测试。