是否可以将Facebook的按键语言与访问者的语言相匹配?

时间:2014-09-14 18:00:13

标签: facebook facebook-like

目前的代码是:

<script>
    (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 = "//connect.facebook.net/en_US/sdk.js#xfbml=1";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>

en_US中所述,它将以英语显示相似的按钮。

我有一个多语言网站,我想知道来自不同国家/地区的人是否可以看到类似按钮的语言与他们的匹配。有没有办法解开语言?

编辑: @luschn

if ( window.navigator.language == "pt" ) {       
    var userLanguage = 'PT_pt';
}
else {
    var userLanguage = 'en_US'; 
}
(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 = "//connect.facebook.net/" + userLanguage + "/sdk.js#xfbml=1";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

1 个答案:

答案 0 :(得分:0)

初始化SDK时使用客户端语言:

https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage.language

虽然小心,但有点不同。例如,“en-US”而不是“en_US”。似乎它也可以只是“en”。确保有一个后备以防万一。

我会得到语言代码,将其与所有不同语言的数组匹配,并将正确的语言代码(或后备)放入变量中:

<script>
    var userLanguage = 'en_US';

    //TODO: check client language and match with an array of your languages
    //do nothing if there is no match (use default from above)

    (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 = "//connect.facebook.net/" + userLanguage + "/all.js#xfbml=1&appId=[your-app-id]&version=v2.0";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>

以下是有关本地化的更多信息的链接:https://developers.facebook.com/docs/internationalization