繁体   English   中英

谷歌翻译获取当前语言

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM