如何使用Google Translate网络插件翻译注入的文字?

时间:2016-12-19 06:28:30

标签: javascript translation frontend google-translate

我已将Free google翻译插件实施到我的网站中,但在使用JS将文本注入页面后,它不会翻译新注入的文本。

我无法在获取文本后延迟翻译过程,因为用户操作会导致文本注入。

我见过这个问题:https://stackoverflow.com/questions/36100201/how-i-can-call-google-translate-using-function-on-submit

但它没有答案,也没有我想问的确切问题。

  1. 是否有任何方法可以向google的翻译JS功能发送回调函数?
  2. 使用Google网站翻译插件有哪些限制?

1 个答案:

答案 0 :(得分:0)

Google翻译网页插件会在您滚动页面时自动翻译网页上的所有可见文字。

  • 我发现使用Google翻译网络插件没有限制。
  • 新注入的文本(使用JavaScript)应自动翻译。
  • 我无法在google的API中找到回调机制,但我找到了一个应该可行的解决方法(使用事件监听器),如下所述。

在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');
}
  • 我已将布局注释掉,使其看起来像普通的SelectBox。
  • 在文档加载时,我添加了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);
    }
    

我希望这会帮助这里的人!!!