我正在尝试使用Google Translate API来翻译我的博客。使用该API可以正常工作,我可以发送文本并获得适当的翻译,但是每当我发送包含HTML的较大文档时,API都不会再有任何答案。
我正在使用PHP发送带有以下代码的查询,并且正在从我的wordpress网站提取帖子(=它仅提取body标签之间的内容)。
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
我试图添加正文/标题部分,但是它没有用,但是我希望没有义务将其添加到我的代码中,因为这需要对所有页面进行重大更改才能使其起作用。
您对我如何进行这项工作有任何想法吗?
更新: 如果我在PHP中使用substr减小$ text的大小,则可以将其翻译成大约5200个字符,在此之上,我什么也没得到。
谢谢!
洛朗
答案 0 :(得分:1)
文档建议发送less than 5000 characters per request。在您的情况下,您需要开发一个函数,将文本分成小于5000个字符(包括HTML标记)的大小块,并在单独的请求中发送它们。但是,请注意,characters sent per 100 seconds和requests sent per 100 seconds也有一些限制。