2016-12-19 99 views
0

我已經實現了免費的谷歌翻譯插件到我的網站,但在我用JS注入文本到頁面後,它並沒有翻譯新注入的文本。如何使用Google翻譯網頁插件翻譯註入的文本?

由於用戶操作導致文本注入,我無法在獲取文本後延遲翻譯過程。

我已經看到了這個問題:https://stackoverflow.com/questions/36100201/how-i-can-call-google-translate-using-function-on-submit

但一直無人接聽,而不是我要問的確切問題。

  1. 是否有任何方法發送到谷歌的翻譯JS功能的回調函數?
  2. 使用Google的網站翻譯插件有什麼限制?
+0

我發現它通常會翻譯動態注入的文本,但是35%停止工作。 –

回答

0

Google翻譯Web插件會在您翻頁時自動翻譯頁面上的所有可見文本。

  • 我發現使用Google Translate web Plugin沒有限制。
  • 新注入的文字(使用JavaScript)應自動翻譯。
  • 我無法找到谷歌的API內部的回調機制,但我發現應該工作的解決方法(使用事件偵聽器),如下所述。

在谷歌翻譯網頁插件改變語言實現回撥機制:

//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'); 
} 
  • 我已經註釋掉佈局,使它看起來像普通的選擇框。
  • 在文檔加載我已經添加事件監聽: 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); 
    } 
    

我希望這將在這裏幫助別人!