2015-12-01 5 views
1

Я работаю над небольшим проектом, в котором у меня есть два divs, один для English и еще один для Arabic. Я создал этот проект, но проблема в том, что я не получаю перевод с English to Arabic, ниже приведен код Я пробовал. Я не знаю, что я делаю неправильно, любая помощь будет оценена по достоинству.Перевод div с английского на арабский язык с помощью google translate api in asp mvc

Edit: мой запрос успешно продолжается в гугл, но каждый раз, когда тело ошибки выполняется в Аяксе

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
    <script src="https://www.google.com/jsapi" type="text/javascript"></script> 
    <script src="~/Scripts/jquery-2.1.4.js"></script> 
    <script src="~/Scripts/jquery-2.1.4.min.js"></script> 
    <script language="javascript" type="text/javascript" src="Scripts/jquery.blockUI.js"></script> 
</head> 
<body> 
    <div id="sourceText">Hello world</div> 
    <div id="translation"></div> 
    <script> 
     var sourceText = escape(document.getElementById("sourceText").innerHTML); 
     var source = "https://www.googleapis.com/language/translate/v2?key=AIzaSyBBsdXcsCLjSex4-9EReA_MqsBFrLrkwm4&source=en&target=ar&callback=translateText&q="; 
     $.ajax({ 
      url: source + encodeURIComponent(sourceText), 
      dataType: 'jsonp', 
      async: false, 
      success: function (data) { 
       alert(data.data.translations[0].translatedText); 
         $('#translation').html(data.data.translations[0].translatedText);  
       }, 

      error: function(x, e) { 
       alert('Error occured while translating the text'); 
      } 
     }); 
    </script> 
</body> 
</html> 
+0

Не могли бы вы уточнить, что произошло неправильно. делает google api alow вам переводить, потому что у меня там ошибка – Rickert

+0

@Rickert да мой запрос успешно идет в google, но каждый раз, когда тело ошибки в теле ajax выполняется –

+0

, какая ошибка вы получаете? – Rickert

ответ

0

Вы не имели функции обратного вызова определяются:

var sourceText = escape(document.getElementById("sourceText").innerHTML); 
var source = "https://www.googleapis.com/language/translate/v2?key=AIzaSyBBsdXcsCLjSex4-9EReA_MqsBFrLrkwm4&source=en&target=ar&callback=translateText&q="; 
$.ajax({ 
    url: source + encodeURIComponent(sourceText), 
    dataType: 'jsonp', 
    jsonpCallback: "translateText", 
    async: false, 
    error: function(x, e) { 
     alert('Error occured while translating the text'); 
    } 
}); 

function translateText(data){ 
    alert(); 
} 

здесь a jsfiddle: jsfiddle

+0

Я не получил ваш ответ правильно, как получить переведенный текст? –

+0

В моем примере вы видите свою функцию с помощью функции TranslateText. это функция обратного вызова с данными, которые вы получаете от Google. поэтому, если вы добавите console.log (данные) в tje translateText, вы увидите данные, которые вы получаете от вызова ajax .. оттуда вы должны проверить и pu данные в нужном месте – Rickert

+0

теперь я получаю от google 'Есть ограничение каждого IP-адреса или каждого референта, настроенное на вашем API-интерфейсе, и запрос не соответствует этим ограничениям. Пожалуйста, используйте Google Developers Console, чтобы обновить конфигурацию ключа API, если запрос от этого IP-адреса или реферата должен быть разрешен. ' –

Смежные вопросы