【问题标题】:Google Translate API - html document translationGoogle Translate API - html 文档翻译
【发布时间】:2018-10-16 08:47:07
【问题描述】:

我正在尝试使用 Google Translate 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

我尝试添加正文/标题部分,但它不起作用,但我希望我没有义务将其添加到我的代码中,因为这需要对所有页面进行重大更改才能使其正常工作。

你知道我怎样才能完成这项工作吗?

更新: 如果我在 PHP 中使用 substr 来减小 $text 的大小,我会将它翻译成大约 5200 个字符,在此之上,我将不再得到任何东西。

谢谢!

劳伦特

【问题讨论】:

  • 如果您查看翻译 API 文档 - cloud.google.com/translate/docs/reference/translate ,您可以传递 format 参数来指定您是发送纯文本还是 html。您是否尝试过在您的发布请求中定义这一点?
  • @PhilippSh 谢谢!是的,我做到了,默认情况下是 html,但我也使用参数尝试过。这确实是一个容量问题,因为以 5000 个字符为单位的相同页面可以正常工作,而如果我将其分块发送,则无法正常工作。我无法想象 Google 有这种限制,而且在他们的文档中也没有提到。
  • 这篇文章这里说建议每次请求发送少于5000个字符-cloud.google.com/translate/faq#technical_questions
  • 你好@PhilippSh 谢谢,我没有看到这个,这证实了我的发现。遗憾的是,它们不占用超过 5000 个字符,因为当今的大多数网页都有超过 5000 个字符。无论如何..没有办法解决它,问题解决了,谢谢!

标签: php wordpress google-translate


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2015-07-25
    • 2014-04-21
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多