7

在网上找到任何可以帮助我的零之后....

我正在为多语言网站使用当前功能:

function googleTranslateElementInit() {
  new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'en,es',     layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}

但是,一旦用户更改它,我不知道如何获取当前语言。我不确定这是否可能。基本上,如果选择西班牙语而不是英语,我想更新为西班牙语图像。任何帮助,将不胜感激!

4

6 回答 6

4

你不会相信的:

window.setInterval(function(){
     var lang = $(".goog-te-menu-value span:first").text();
     alert(lang);
},5000);

我只需要在 Firebug 中挖掘容器并从第一个 span 元素中获取值。希望这可以帮助某人。

于 2012-11-20T20:08:27.320 回答
4

当前选择的语言存储在名为 的 cookie 中googtrans

Here's a simple example of grabbing the value from the cookie (based on cookie code from here: What is the shortest function for reading a cookie by name in JavaScript?):

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.
于 2014-12-15T16:11:38.690 回答
2

调用google.translate.TranslateElement().c会给出当前语言的代码。例如,“fr”表示法语,“en”表示英语,“de”表示德语。

检查google.translate全局对象通常是有用的。这有点难 b/c 谷歌显然编译了代码,这样TranslateElement.c就没有人类可读的名称,但只要稍加努力,你就可以理解一些参数。

于 2013-09-22T20:43:53.540 回答
2

调用google.translate.TranslateElement().a.sd给出当前语言的标识符。

示例: “fr”表示法语,“en”表示英语,“de”表示德语,“it”表示意大利语


调用google.translate.TranslateElement().a是其他当前参数的对象,例如 Google Analytics 跟踪代码。

在控制台中查看它,看看那里有什么。如何访问控制台?

检查google.translate全局对象通常是有用的。这有点困难,因为 Google 会不断更新代码,更改参数分配,并且显然已经将代码编译为google.translate.TranslateElement()没有人类可读名称之类的东西;不过,只要稍加努力,您就可以理解一些参数。

于 2014-11-07T14:17:18.083 回答
0

您也许可以从 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'];
于 2012-11-20T19:54:42.063 回答
0

我在我的 joomla 网站中使用谷歌翻译模块。我的要求是我们在顶部有一个语言按钮。默认站点为英文。所以显示在顶部的按钮将是西班牙语。当用户单击按钮时,页面会翻译成西班牙语,按钮会变为英语,反之亦然。只要您不刷新页面,它就可以正常工作。现在说翻译页面是西班牙语,顶部的按钮是英语。现在,当您刷新页面时,按钮会变回西班牙语(javascript 隐藏显示功能,默认为西班牙语)。由于我可以跟踪当前语言,因此顶部的语言按钮与选择的语言不相符。经过大量挖掘,我发现了这个脚本,它帮助我解决了我的问题。我希望它也对其他人有所帮助。

<script>
 //to get currently selected language
window.setInterval(function(){
     lang = $("select.goog-te-combo option:selected").text();
    alert(lang);
},5000);
 </script>
于 2013-03-22T06:40:46.423 回答