Google Translate API-HTML文档翻译

时间:2018-10-16 08:47:07

标签: php wordpress google-translate

我正在尝试使用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个字符,在此之上,我什么也没得到。

谢谢!

洛朗

1 个答案:

答案 0 :(得分:1)

文档建议发送less than 5000 characters per request。在您的情况下,您需要开发一个函数,将文本分成小于5000个字符(包括HTML标记)的大小块,并在单独的请求中发送它们。但是,请注意,characters sent per 100 secondsrequests sent per 100 seconds也有一些限制。