【问题标题】:Multiple requests to the google translator API make website TOO slow对谷歌翻译 API 的多个请求使网站太慢
【发布时间】:2012-04-16 20:08:00
【问题描述】:

我正在使用谷歌翻译 API 来翻译我在一些网站中的网站:

我这样做:

function translate($from_lan, $to_lan, $text){
    $json = json_decode(file_get_contents('https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' . urlencode($text) . '&langpair=' . $from_lan . '|' . $to_lan));
    $translated_text = $json->responseData->translatedText;

    return $translated_text;
}

正如translate a PHP $string using google translator API解释的那样

Wich 工作正常(不要关注翻译质量),问题是大约 20/30 的请求(或更多)会使网站无法使用......太慢了。如果你想检查只是去

http://funcook.com/ 并以法语 http://funcook.com/?lan=3 或德语进行测试 http://funcook.com/?lan=4

我还尝试循环我网站的所有字符串,翻译它们并保存翻译后的字符串,这样我就不需要请求这么多次了,

但它们大约是 300 并且在此过程中失败(大约 50%)我猜是因为延迟

所以问题是: ¿ 更好的选择?

【问题讨论】:

  • 每个远程服务都会花时间,你应该缓存翻译的部分,这样你就不需要一直调用远程服务。

标签: php google-api google-translator-toolkit


【解决方案1】:

没有更好的选择。 您需要做的是缓存您从谷歌翻译获得的结果,而不是每次都从谷歌翻译加载。将翻译写入文件或数据库并从那里加载它们。如果关键字不存在,请从谷歌翻译中询问。如果您认为翻译及时更改,则不时刷新/重置缓存。

永远不要在没有缓存的情况下向外部服务发出多个请求。您基本上是在浪费自己的资源,而且很可能最终会被 Google 屏蔽。

【讨论】:

  • 你知道怎么做吗?你能举个例子吗?
猜你喜欢
  • 2018-02-19
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多