Раньше я использовал перевод V1 Google. В моем JavaScript я бы перебирал набор элементов после загрузки страницы, переводил текст и выводил результат в соответствующее текстовое поле. Я пытаюсь реализовать ту же функциональность в V2 платного API (биллинг включен).Обратный звонок с Google Translate V2
Это то, что я сделал в V1, внутри цикла:
google.language.translate(lookupText, 'gb', 'fr', function (result) {
if (!result.error) {
ctlSuggestion.innerText = result.translation;
}
});
Это хорошо работало, потому что функция обратного вызова заливали в запросе, так что я мог бы обновить InnerText правильного элемента после того, как результат пришел назад.
В V2, похоже, не похоже на подобный метод. Я попытался с помощью JQuery Ajax, но я получил «Отказано в доступе» сообщение, я думаю, что это потому, что его крест вызова домена или что-то:
$.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');
}
});
я могу получить метод REST для работы, но в функции обратного вызова нет никакого способа узнать, что контролировать запрос пришел от:
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
Perfect !!! U спас мой день :-) – Zax