繁体   English   中英

可变语言(浏览器语言检测)-在Safari中不起作用

[英]Variable Language (Browser Language detection) - not working in safari

好的,这是东西,我有一个网站,希望它检查是否有人的浏览器语言是德语,如果是,则将其显示为德语文本,如果不是德语,则应始终获取英语版本。 一个朋友(现在没有时间了)将此代码编码为索引:

<script>

    var texte = {
        'title': {
            'de':'eis',
            'en':'ice'},
        'subtitle': {
            'de':'Untertitel DE',
            'en':'Subhead Eng'},

        'email': {
            'target':'placeholder',
            'de':'Platzhalter DE',
            'en':'Email me when it is ready'},
        'submit': {
            'target':'value',
            'de': 'Lorem Ipsum',
            'en': 'send'
        },
        'share_txt': {
            'de': 'bitte teilen',
            'en': 'share...'
        }

    };

    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s);
        js.id = id;
        js.src = "//c";
        fjs.parentNode.insertBefore(js, fjs);

    }(document, 'script', 'facebook-jssdk'));

    (function(d){
        var t = window.navigator.language!='de'?'en':'de';
        for(i in texte){
            var target = d.getElementById(i),
                    text = texte[i][t];
            if(texte[i].target){
                target[texte[i].target] = text;
            }else{
                target.innerText = text;
            }

        }

    })(document);
</script>

该功能在Chrome浏览器中有效,但在野生动物园中不可用。 你们有什么主意吗? 我也认为一个简单的解决方法是检测,然后将用户发送到index_de.html或index_eng.html页面。 我将如何实施呢?

您是否检查过window.navigator.language的实际值?

如果我正确理解了文档 ,则该语言为RFC 4646表示法,因此它也可能具有de-DE表示法。 因此,您可能只想检查前两个字符,而只获取不带子标签的主要语言。

稍作更改即可为您提供:

var t = window.navigator.language.substr(0, 2)!='de'?'en':'de';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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