私はGoogleのV1翻訳を使用していました。私のJavaScriptでは、ページがロードされた後に要素のコレクションをループし、テキストを翻訳し、結果を対応するテキストボックスに出力します。私は有料APIのV2に同じ機能を実装するのに苦労しています(請求は有効です)。Google翻訳でコールバックV2
これは、私がループ内で、V1にやったことです:コールバック関数は、要求に埋め込まれたので
google.language.translate(lookupText, 'gb', 'fr', function (result) {
if (!result.error) {
ctlSuggestion.innerText = result.translation;
}
});
は、これがうまく、その結果が来たら、私は正しい要素ののinnerTextを更新することができバック。
V2では、同じような方法のようには見えません。私はjQueryのアヤックスを使用してみましたが、私は、「アクセスが拒否されました」というメッセージ、私はそのクロスドメインコールか何かので、これがあると思いました。私はREST方式で動作するように取得することができます
$.ajax({
type: "GET",
url: "https://www.googleapis.com/language/translate/v2",
data: { key: "API-KEY", source: "en", target: "fr", q: lookupText },
dataType: 'json',
success: function (data) {
alert(data.data.translations[0].translatedText);
},
error: function (data) {
alert('fail');
}
});
が、コールバック関数での私は、コールバック関数に追加のパラメータを渡すことができれば、私は更新するコントロールを指定することもできますが、私は、これは使用可能ではないと思います
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
var sourceText = "Hello World"
var source = 'https://www.googleapis.com/language/translate/v2?key=API-KEY=en&target=de&callback=translateText&q=' + sourceText;
newScript.src = source;
// When we add this script to the head, the request is sent off.
document.getElementsByTagName('head')[0].appendChild(newScript);
function translateText(response) {
alert(response.data.translations[0].translatedText);
}
:リクエストから来たコントロール何を知る方法はありませんこの方法。
ルックアップテキストとはどこにデータを与えるのですか – Raghurocks
パーフェクト!!! U私の日を保存しました:-) – Zax