检测 Google 网站翻译语言更改
Detect Google Website Translator change of language
我在我的网站上使用 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');
}
效果很好,现在唯一的问题是我需要知道用户实际选择了哪种语言。
我想检测用户何时手动选择语言以及翻译人员何时进行自动翻译,因为它可以根据浏览器设置进行自动翻译。
我想做的是在更改语言时添加一个事件监听器。 IE。不仅在用户手动设置语言时,而且在每次翻译人员实际进行翻译时。
例如。翻译开始或完成时或页面 "refreshes" 显示新语言时。
我需要收集此信息并将其发送到服务器,以了解稍后发送给用户的电子邮件使用何种语言。由于此信息是从多个地方收集的,我不想每次需要信息时都手动检查所选语言,而是添加一个事件侦听器来检测语言更改并触发 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:http://jsbin.com/neteqihage/1/
我在我的网站上使用 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');
}
效果很好,现在唯一的问题是我需要知道用户实际选择了哪种语言。 我想检测用户何时手动选择语言以及翻译人员何时进行自动翻译,因为它可以根据浏览器设置进行自动翻译。
我想做的是在更改语言时添加一个事件监听器。 IE。不仅在用户手动设置语言时,而且在每次翻译人员实际进行翻译时。 例如。翻译开始或完成时或页面 "refreshes" 显示新语言时。
我需要收集此信息并将其发送到服务器,以了解稍后发送给用户的电子邮件使用何种语言。由于此信息是从多个地方收集的,我不想每次需要信息时都手动检查所选语言,而是添加一个事件侦听器来检测语言更改并触发 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:http://jsbin.com/neteqihage/1/