2016-12-19 18 views
0

Я внедрил бесплатный плагин google translate на свой сайт, но после того, как я ввел текст на страницу с помощью JS, он не переводит недавно введенный текст.Как перевести вложенный текст с помощью Google Translate web plugin?

Я не могу задержать процесс перевода после получения текста, потому что действия пользователя вызывают инъекцию текста.

Я видел этот вопрос: https://stackoverflow.com/questions/36100201/how-i-can-call-google-translate-using-function-on-submit

Но это не имеет никакого ответа и не точный вопрос, что я хочу спросить.

  1. Есть ли способ отправить функцию обратного вызова функции перевода JS на Google?
  2. Каковы пределы использования плагина для перевода сайта Google?
+0

Я выяснил, что он обычно переводит текст, который был введен динамически, но в 35% случаев он перестает работать. –

ответ

0

Google Translate Web Plugin автоматически переводит все видимые тексты на странице при прокрутке страницы.

  • Я не нашел никаких ограничений на использование Google Translate web Plugin.
  • Введенный текст (с использованием JavaScript) должен быть переведен автоматически.
  • Мне не удалось найти механизм обратного вызова внутри API Google, но я нашел обходное решение, которое должно работать (используя прослушиватель событий), как описано ниже.

Реализовать механизм обратного вызова для изменения языка в Google Перевести веб-плагин:

//Google Translate 
function googleTranslateElementInit() { 
    new google.translate.TranslateElement({ 
     pageLanguage: 'iw', 
     //layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 
     includedLanguages: 'ar,en,fr,hu,ru', 
    }, 'google_translate_element'); 
} 
  • Я закомментировал макет, чтобы это выглядело как обычный переключателе.
  • При загрузке документа я добавил EventListener: document.getElementById("google_translate_element").addEventListener("change", onLangChange, false);
  • И, наконец, я добавил onLangChange Функция уволят вверх по мере изменения пользовательских/выбирает язык:

    function onLangChange() { 
        //option is selected 
        var e = this.getElementsByTagName("select")[0]; 
        var txtValue = e.options[e.selectedIndex].text; 
        console.log(e + " " + txtValue); 
    } 
    

Я надеюсь, что это помогите кому-нибудь здесь !!!