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'];
}
我明白了。
基本上,我是在强制使用错误的源语言。当我指定正确的源语言时,它再次起作用。
我正在使用 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'];
}
我明白了。
基本上,我是在强制使用错误的源语言。当我指定正确的源语言时,它再次起作用。