[英]Google translate get current language
在网上找到任何可以帮助我的零之后....
我将当前的 function 用于多语言站点:
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'en,es', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}
但是,一旦用户更改它,我不知道如何获取当前语言。 我不确定这是否可能。 基本上,如果选择西班牙语而不是英语,我想更新为西班牙语图像。 任何帮助,将不胜感激!
你不会相信它:
window.setInterval(function(){
var lang = $(".goog-te-menu-value span:first").text();
alert(lang);
},5000);
我只需要挖掘Firebug中的容器并从第一个span元素中获取值。 希望这有助于某人。
当前选择的语言存储在名为googtrans
的cookie中。
这是一个从cookie中获取值的简单示例(基于此处的cookie代码: 在JavaScript中按名称读取cookie的最短函数是什么? ):
function readCookie(name) {
var c = document.cookie.split('; '),
cookies = {}, i, C;
for (i = c.length - 1; i >= 0; i--) {
C = c[i].split('=');
cookies[C[0]] = C[1];
}
return cookies[name];
}
console.log(readCookie('googtrans')); //eg. 'en/no' for Norwegian, '/en/hr' for Croatian, etc.
调用google.translate.TranslateElement().c
提供当前语言的代码。 例如,法语为“fr”,英语为“en”,德语为“de”。
检查google.translate
全局对象通常是提供信息的。 这是一个有点难的b / c谷歌明显编译代码,使得像TranslateElement.c
这样的东西没有人类可读的名字,但只需稍加努力就可以理解一些参数。
调用google.translate.TranslateElement().a.sd
给出当前语言的标识符。
例如:法语为“fr” ,英语为“en” ,德语为“de ” ,意大利为“it”
调用google.translate.TranslateElement().a
是其他当前参数的对象,例如Google Analytics跟踪代码。
在控制台中查看它,看看有什么。 我如何访问控制台?
检查google.translate
全局对象通常是提供信息的。 这有点困难,因为谷歌不断更新代码,更改参数分配,并且显然已经编译了代码,以至于像google.translate.TranslateElement()
这样的东西没有人类可读的名字; 尽管如此,你可以理解一些参数。
您可以从URL获取语言。
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
然后
var selected_lang = getUrlVars()['lang'];
我在我的joomla网站上使用谷歌翻译模块。 我的要求是我们顶部有一个语言按钮。 默认网站将使用英文。 因此,显示在顶部的按钮将是西班牙语。 当用户点击按钮时,页面将转换为西班牙语,按钮将更改为英语,反之亦然。 只要不刷新页面,这就可以正常工作。 现在说翻译的页面是西班牙语,顶部的按钮是英语。 现在,当您刷新页面时,按钮会变回西班牙语(javascript隐藏显示功能,默认为西班牙语)。 当我启用跟踪当前语言时,顶部的语言按钮不符合所选语言。 经过多次挖掘,我发现这个脚本帮助我解决了我的问题。 我希望它也可以帮助别人。
<script>
//to get currently selected language
window.setInterval(function(){
lang = $("select.goog-te-combo option:selected").text();
alert(lang);
},5000);
</script>
我陷入了同样的问题。 花了一天后,我得到了一个技巧,可以从谷歌翻译小部件中读取选定的语言。您可以从 html 标签中读取,因为我们是 select,lang 属性得到更新,您可以简单地: document.getElementsByTagName('html')[0].lang
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.