目前的代码是:
<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'));
答案 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