2012-04-16 7 views
0

作る私はウェブサイトのいくつかで私のウェブサイトを翻訳するために、Googleの翻訳の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

を説明しました

翻訳品質に重点を置くことなく、うまく動作しますが、約20/30リクエスト(またはそれ以上)でウェブサイトを使用できなくしてしまうという問題があります。あなただけの私もループに私のウェブサイトのすべての文字列を試してみました

フランス語 http://funcook.com/?lan=3またはドイツ語 http://funcook.com/?lan=4

http://funcook.com/とテストに行き確認したい場合は、私は必要はありませんそれらを翻訳し、翻訳された文字列を保存、非常に多くの時間を要求

しかし、彼らは約300であり、それは私が原因で遅延

の推測プロセス(約50%)で失敗しそこで質問です: ¿より良い代替手段?

+0

すべてのリモートサービスには時間がかかります。翻訳された部分をキャッシュして、リモートサービスを常に呼び出す必要はありません。 – hakre

答えて

2

もっと良い選択肢はありません。 あなたがする必要があるのは、Google Translateから取得した結果をキャッシュし、毎回Google翻訳から読み込まないことです。翻訳をファイルまたはデータベースに書き込んでそこから読み込みます。キーワードが存在しない場合は、Google翻訳からお問い合わせください。そして、毎回キャッシュをフラッシュ/リセットし、翻訳が時間内に変わると思うならば。

キャッシュしないで外部サービスに複数の要求を行うことは決してありません。あなたは基本的に独自のリソースを浪費しているだけでなく、Googleによってブロックされる可能性が高いです。

+0

あなたはこれを行う方法を知っていますか?あなたは例を挙げていただけますか? – Mahesh

関連する問題