我在我的网站上使用Google网站翻译器让用户即时翻译网站。使用此代码:
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方法来保存信息。服务器上的会话。
谢谢!
答案 0 :(得分:3)
当用户手动选择语言(更改选择框的值)时,您可能会选择
选择的语言$('.goog-te-combo').on('change',function(){
language = $("select.goog-te-combo option:selected").text();
alert(language);
});
如果您的网页刷新并且翻译人员翻译了您的网页,您可以使用setTimeout
获取当前使用的语言。这并不完美,但它确实有助于交配.. :)
答案 1 :(得分:1)
您可以使用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:http://jsbin.com/neteqihage/1/