Javascript 检测谷歌网站翻译语言的变化

Javascript 检测谷歌网站翻译语言的变化,javascript,jquery,google-translate,Javascript,Jquery,Google Translate,我在我的网站上使用谷歌网站翻译器,让用户即时翻译网站。使用此代码: function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'ar,de,el,en,es,fr,it,ja,ko,nl,ru,zh-CN', layout: google.translate.TranslateElement.Fl

我在我的网站上使用谷歌网站翻译器,让用户即时翻译网站。使用此代码:

    function googleTranslateElementInit() {
        new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'ar,de,el,en,es,fr,it,ja,ko,nl,ru,zh-CN', layout: google.translate.TranslateElement.FloatPosition.BOTTOM_RIGHT}, 'google_translate_element');
    }
这非常有效,现在唯一的问题是我需要知道用户实际选择了哪种语言。 我想检测用户何时手动选择语言,以及翻译人员何时进行自动翻译,因为翻译人员可以根据浏览器设置进行自动翻译

我想做的是在语言更改时向添加事件侦听器。即,不仅当用户手动设置语言时,而且每次翻译人员实际进行翻译时。 例如,翻译开始或结束时,或页面“刷新”以显示新语言时

我需要收集这些信息并将其发送到服务器,以了解在稍后阶段发送给用户的电子邮件使用何种语言。由于这些信息是从多个地方收集的,所以我不希望每次需要这些信息时都手动检查所选语言,而是添加一个事件侦听器来检测语言的变化,并触发一个AJAX方法以在服务器上的会话中保存信息


谢谢

当用户手动选择语言(更改选择框的值)时,您可能会使用

$('.goog-te-combo').on('change',function(){
       language = $("select.goog-te-combo option:selected").text();
        alert(language);
    });


如果页面刷新且翻译人员翻译页面,您可以使用
setTimeout
获取当前使用的语言。这并不完美,但它确实有助于伴侣……)

您可以使用
setInterval
定期检查语言是否更改:

var translatedText='';
var interval=setInterval(function(){
   var el=document.getElementsByClassName('goog-te-menu-value')[0];  
   if(el && el.innerText!==translatedText){
        translatedText=el.innerText;
        console.log('changed');
    }
},200);

正在工作的JS Bin:

谢谢你的回答。我也使用
$('body')实现了这一点
并在updateLanguage方法中通过
$('#google_translate_element select').val()检索值。这很好,但是我想找到一种方法来倾听翻译人员使用新语言内容更新页面时引发的事件。$('body')。on('change','google#translate_element select',updateLanguage);@Blizwire提到的方法很有效。当页面刷新以获取当前语言时,我选择读取由谷歌翻译插件存储的cookie“googtrans”。。