Google Translate API v1からBing Translate APIへの迅速な移行

そのため、昨日、Good Corporation 無料のTranslate APIをまだ閉鎖していました。 著者は、最後の瞬間まで、彼らが彼らの感覚に来て、他の人のようにならないことを望んでいました。 したがって、傷は付けられず、何もしませんでした。 しかし、その後、雷が襲いました。 そして、1つの小さな3言語プロジェクトのCMSで、翻訳者が落ちました。 怖くありませんが、不快です-コンテンツを編集するためのフォームの管理者の前に、すべてのフィールドを2つの言語に翻訳します。 私は私の翻訳者を優雅に書いて、それに20分を費やしましたが、それには一銭もかかりませんでした。 それにもかかわらず、クライアントは電話をかけ、愛するハムスターに対する身体的危害を脅し、尋ね、再び脅します。 私はbashを閉じて、代替手段を探す必要がありました。



猫の下には、著者が見つけたリスト(4つのオプション、啓示/発見なし)、およびBingからのJavascript翻訳のレシピがあります。





オプション1、有料


最も簡単で最速のソリューションは、同じCorporationのTranslate API v2を使用することです。 しかし、混乱するのは、単純なJSの例がないことです。 繰り返しますが、セキュリティの問題-jsにAPIキーを追加する必要があります。 つまり ページのソースコードを開くことを推測した人は誰でもそこでキーを見つけることができます。 クライアントを犠牲にしてサイトで翻訳します。 面白くない。 (告白しますが、理解できませんでした、すべてがそこで可能です。しかし、土曜日の夜、理解するための怠iness、私はbash | beer | neighbourを読みたいと思います)



オプション2、 犯罪 hemo


ここで提案されているように、何らかの理由で翻訳が機能します。 さらに、JSON形式で回答を提供します。 また、Google自体が翻訳ウィジェットを使用することを提案しています。これはおそらく、リクエストを送信する場所とエミュレートする方法を分析して確認できます。

ここで疑問が生じます-これらのオプションを処理するのにどれくらい時間がかかりますか? 明日(1週間)ベンチが閉じられないという確実性はありますか? 彼らはJSONPをJSONPから取得できますか、それともSame Origin Policyを再度バイパスする必要がありますか?

質問はたくさんありますか?



オプション3、神話


彼は、D。Corporationのサービスをコピーするためのロシアの検索エンジンの愛を思い起こして、Yandex Translate APIをグーグルしようとしました。 そのようなサービスの存在について言及しているだけで、文書化が不十分であることがわかりました。 おそらく、翻訳者がD. Inc.から切断されていたため、文書化されていません。 すべてのrunetは、このサービスへのリンク、使用例、およびドキュメントからの抜粋でいっぱいにする必要があります。 まあ、私は自分が時間通りに通知しなかった唯一の人であるとは信じていません。おそらくもっと多くの犠牲者がいるでしょう。

これは単なる仮定であるため、情報がある場合はあまりキックしないでください。リンクはコメントにのみ表示されます。



オプション4、危険な


検索の過程で、YandexのAPIは非常に驚きました! http://msdn.microsoft.com/en-us/library/dd877846.aspx彼らは私たちに景品を与えてくれます! 働く! JSONP対応のトランスレーター! そして、誰がそんなに寛大ですか? マイクロソフト! 将来を見据えて、私は翻訳者が本当に働いていると言います。 確かに、GoogleをMicrosoftに任せるのはどういうわけか...不自然ですか? しかし、それでも...

使用例へのリンクを提供しました。 控えめに言っても、例は面倒ですが、少し文書化されています。 はい、ところで、コードをざっと見てみると、ある種のAPIキーが必要であることは明らかです。 ただし、簡単に入手できます。 ここにアクセスし登録し、サイトを追加してください。 インターフェイスは少しバグがありますが、一般的にはサイトを追加することが判明しました。

はい、ところで、たとえばDobrokartとは異なり、同じキーを持つ翻訳者が別の(ローカル)ドメインで働いていました。 コードはすぐに修正され、jQueryを使用して少し短くなり、読みやすくなりました。 jQueryが気に入らない場合は、自分よりも似たような問題を自分で解決できるか、この関数を機能させるために接続する必要があります。

/** * function for translating using Bing's Translator API * @param String text - text to be translated * @param String sl - source language code (fe 'ru') * @param String tl - target language code (fe 'ru') * @param Function success - function to be called when translate is complete * sucessfully (will be given to a jQuery's ajax success parameter) * @param Function complete - function to be called anyway (will be given to a * jQuery's ajax complete parameter) */ function translate_bing(text, sl, tl, success, complete){ if(typeof(complete) != 'function') complete = function(){}; jQuery.ajax({ url: 'http://api.bing.net/json.aspx?JsonCallback=?', dataType: 'jsonp', data: { 'AppId' : 'YOUR_API_KEY', 'Query': text.substr(0, 5000), 'Sources': 'Translation', 'Version': '2.2', 'Translation.SourceLanguage': sl, 'Translation.TargetLanguage': tl, 'JsonType':'callback' }, success: function(response){ success(response.SearchResponse.Translation.Results[0].TranslatedTerm || ''); }, complete: complete }); }
      
      





私はコードにコメントを挿入しませんでした。審査員ほどではありません。 はい、機能はそこに何かの特定の違反で文書化されています。 しかし、私の意見では、何かを理解することができます。 そして最も重要なこと-それは動作します! (うまくいかない場合は、コメントをお寄せください。できればブラウザを使用してください)



はい、それでも-Googleと比較した翻訳の品質は最悪です。 少なくともRU-> UAの方向。

より良いものがあれば、コメントへようこそ。



そして最後に、後悔の小さなピンクの鼻-Googleを愛するのをやめる時がたようです。 私は彼らがお金をもうけ始めなければならないので、彼らはもはや親切でふわふわしたままでいられないことを理解しています。 なんて残念。 それはどういうわけか...魔法でしたか? カードが必要ですか-オン。 翻訳者が必要な場合-オン。 どれだけ借りていますか? -さて、私たちのサービスをご利用いただきありがとうございます。 くそー、それはただのおとぎ話です。 終わった。



以上で、隣人にビールを飲みに行きました。

UPD:そうそう、JSONPを使用しています。 GETのみを送信します。もちろん、多少長いテキストを翻訳する場合(理解できませんでしたが、キリル文字520がtrueの場合)、HTTP 414と言います(この特定のケースでは何らかの理由で404と呼ばれます)



All Articles