谷歌翻译获取当前语言



在网上找到任何可以帮助我的东西......

我正在将当前功能用于多语言网站:

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

最新更新