Google 云翻译:神秘错误 400 无效值

Google Cloud Translate: cryptic error 400 invalid value

我正在使用 Google 翻译(基本版)来翻译一些字符串。几分钟前它工作正常,但现在只是 returns 错误 400。代码非常简单:

function translatePhrase($text, $target, $source = 'it') {

    $sourceLanguage = $source;
    $targetLanguage = $target; 

    $translate = new TranslateClient();
    $result = $translate->translate($text, [
        'source' => $sourceLanguage,
        'target' => $targetLanguage,
    ]);

    $output = $result['text'];

    return $output;
}

它returns:

Uncaught Google\Cloud\Core\Exception\BadRequestException: {
"error": {
"code": 400,
"message": "Invalid Value",
"errors": [
{
"message": "Invalid Value",
"domain": "global",
"reason": "invalid"
}
]
}
}
in \vendor\google\cloud-core\src\RequestWrapper.php:362

Stack trace:
#0 \vendor\google\cloud-core\src\RequestWrapper.php(206): Google\Cloud\Core\RequestWrapper->convertToGoogleException(Object(GuzzleHttp\Exception\ClientException))
#1 \translate\vendor\google\cloud-core\src\RestTrait.php(95): Google\Cloud\Core\RequestWrapper->send(Object(GuzzleHttp\Psr7\Request), Array)
#2 \translate\vendor\google\cloud-translate\src\V2\Connection\Rest.php(83): Google\Cloud\Translate\V2\Connection\Rest->send('translations', 'translate', Array)
#3 \translate\vendor\google\cloud-translate\src\V2\TranslateClient.php(248): Google\Cloud\Translate\V2\Connection\Rest->listTra
in [\translate\vendor\google\cloud-core\src\RequestWrapper.php riga 362]

有什么想法吗?

如您所见,它完全出错了 here ...所以选项数组有问题。它应该看起来像这样(因为没有单个示例传递 source 语言代码,而是返回自动检测到的 $result['source']):

function translatePhrase($text, $target) {
    $translate = new TranslateClient();
    $result = $translate->translate($text, [
        'target' => $target
    ]);
    return $result['text'];
}

我明白了。

基本上,我是在强制使用错误的源语言。当我指定正确的源语言时,它再次起作用。