对谷歌翻译API的多次请求使网站太慢


Multiple requests to the google translator API make website TOO slow

我正在使用谷歌翻译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;
}

如前所述,使用谷歌翻译 API 翻译 PHP $string

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

http://funcook.com/和测试法语 http://funcook.com/?lan=3 或德语 http://funcook.com/?lan=4

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

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

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

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

永远不要在不缓存外部服务的情况下向外部服务发出多个请求。你基本上是在浪费自己的资源,并且最终可能会被谷歌阻止。