我正在尝试谷歌翻译API来翻译我的博客。访问API是可行的,我可以发送文本并得到适当的翻译,但是每当我发送包含HTML的较大文档时,我就不会再从API中得到任何答案。
我使用PHP发送下面代码的查询,并从wordpress站点中提取帖子(=它只提取正文标记之间的内容)。
PHP代码:
function translation ($text,$origin,$destination)
{
$apiKey = 'MY_API_KEY';
$url = 'https://www.googleapis.com/language/translate/v2?key='.$apiKey.'&q='.rawurlencode($text).&source='.$origin.'&target='.$destination;
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($handle);
$responseDecoded = json_decode($response, true);
curl_close($handle);
print_r($response);
print_r($responseDecoded);
}如果我用以下方式输入变量:
$text: "hello world"
$origin: "en"
$destination: "fr"我工作没有任何问题。
如果我用html向$text提供信息,我就不会从API中得到任何答案,甚至连一个错误消息都得不到。我查看了文档并看到了以下内容:https://cloud.google.com/translate/markup
我试图添加body/header部分,但它不起作用,但我希望我不必将其添加到代码中,因为这将需要对所有页面进行重大更改才能使其工作。
你知道我怎样才能做到这一点吗?
更新:如果我在中使用substr来缩小$text的大小,我会将其翻译到大约5200个字符,在此之上,我将什么也得不到。
谢谢!
洛朗
发布于 2018-10-19 10:46:46
文档建议发送每次请求少于5000个字符。在您的情况下,您需要开发一个函数,将文本分割成小于5000个字符的块(包括HTML标记),并以单独的请求发送它们。但是,请注意,在每100秒发送字符和每100秒发送请求方面也有限制。
https://stackoverflow.com/questions/52831454
复制相似问题