在网上找到任何可以帮助我的东西......
我正在将当前功能用于多语言网站:
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'en,es', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}
但是,一旦用户更改了当前语言,我不知道如何获取当前语言。我不确定这是否可能。基本上我想更新到西班牙语图像,如果选择西班牙语而不是英语。任何帮助将不胜感激!
当前选择的语言存储在名为 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.
你不会相信的:
window.setInterval(function(){
var lang = $(".goog-te-menu-value span:first").text();
alert(lang);
},5000);
我只需要挖掘以找到Firebug中的容器并从第一个中获取值跨度元素。希望这对某人有所帮助。
调用google.translate.TranslateElement().c
会给出当前语言的代码。例如,"fr"表示法语,"en"表示英语,"de"表示德语。
检查全局对象google.translate
通常提供信息。谷歌显然编译了代码有点困难,这样像TranslateElement.c
这样的东西没有人类可读的名称,但只要稍加努力,您就可以理解一些参数。
调用google.translate.TranslateElement().a.sd
提供当前语言的标识符。
例子: "fr"代表法语,"en"代表英语,"de"代表德语,"it"代表意大利语
调用google.translate.TranslateElement().a
是其他当前参数的对象,例如Google Analytics跟踪代码。
在控制台中查看它以查看其中的内容。如何访问控制台?
检查全局对象google.translate
通常具有信息性。这有点困难,因为 Google 不断更新代码,更改参数分配,并且显然以这样一种方式编译代码,例如 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 hide show function,默认为西班牙语)。由于我能够跟踪当前语言,因此顶部的语言按钮不符合所选语言。经过大量挖掘,我找到了这个脚本,它帮助我解决了我的问题。我希望它也能帮助其他人。
<script>
//to get currently selected language
window.setInterval(function(){
lang = $("select.goog-te-combo option:selected").text();
alert(lang);
},5000);
</script>
我遇到了同样的问题。花了一天的时间后,我得到了一个黑客,从谷歌翻译小部件中读取选定的语言。我们可以从html标签中读取我们选择,lang属性得到更新,你可以简单地: document.getElementsByTagName('html')[0].lang