matthiasnoback/microsoft-translator

用于调用 Microsoft Translator V2 API 的库

v4.0.0 2024-08-23 08:11 UTC

README

由 Matthias Noback(由 Alayn Gortazar 维护)

Build Status

安装

使用 Composer,添加到 composer.json

{
    "require": {
        "matthiasnoback/microsoft-translator": "dev-master"
    }
}

然后使用 Composer 二进制文件

php composer.phar install

用法

此库使用 Buzz 浏览器调用 Microsoft Translator Text API 3.0

您需要 获取 Microsoft Azure Cognitive Services 订阅密钥。这可以用于实例化 AzureTokenProvider

<?php

use MatthiasNoback\MicrosoftOAuth\AzureTokenProvider;
use MatthiasNoback\MicrosoftTranslator\MicrosoftTranslator;

use Buzz\Browser;
use Buzz\Client\Curl;
use Nyholm\Psr7\Factory\Psr17Factory;


$client = new Curl(new Psr17Factory());
$browser = new Browser($client, new Psr17Factory());

$azureKey = '[YOUR-AZURE-SUBSCRIPTION-KEY]';

$accessTokenProvider = new AzureTokenProvider($browser, $azureKey);

$translator = new MicrosoftTranslator($browser, $accessTokenProvider);

选择 azure 令牌提供程序 URL

默认情况下,acesstoken 将从 https://api.cognitive.microsoft.com/sts/v1.0/issueToken 获取,可以传递第三个参数到 AzureTokenProvider 以选择另一个源。

<?php
// Some code

$accessTokenProvider = new AzureTokenProvider($browser, $azureKey, 'https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken');

可选:启用访问令牌缓存

每次调用翻译服务之前,都会先调用 Microsoft 的 OAuth 服务器。但是,每个访问令牌都可以缓存 10 分钟,因此您还应该使用内置的 AccessTokenCache

<?php

use MatthiasNoback\MicrosoftOAuth\AccessTokenCache;
use Cache\Adapter\PHPArray\ArrayCachePool;

$cache = new ArrayCachePool();
$accessTokenCache = new AccessTokenCache($cache);
$accessTokenProvider->setCache($accessTokenCache);

实际的缓存提供程序可以是任何实现 FIG-PSR6 的 CachePoolInterface 接口的对象

调用

翻译字符串

<?php
// Some code

$translatedString = $translator->translate('This is a test', 'nl', 'en');

// $translatedString will be 'Dit is een test', which is Dutch for...

翻译字符串并获取多个翻译

<?php
// Some code

$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();
}

检测字符串的语言

<?php
// Some code

$text = 'This is a test';

$detectedLanguage = $translator->detect($text);

// $detectedLanguage will be 'en'

测试

查看测试以了解您可以使用 API 做什么。

要完全启用测试套件,您需要将 phpunit.xml.dist 复制到 phpunit.xml 并将占位符值替换为其实际值(即客户端 ID、客户端密钥和存储语音文件的存储位置)。

Build Status

待办事项

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