0

我正在使用谷歌翻译 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%)我猜是因为延迟

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

4

1 回答 1

3

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

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

于 2012-04-16T20:37:33.817 回答