可变语言(浏览器语言检测)-在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中有效,但在safari中无效。你们知道吗?此外,我认为一个简单的解决方案是检测,然后将用户发送到index_de.html或index_eng.html页面。我将如何实现这一点?
你们检验过window.navigator.language
的实际值吗?
如果我正确理解文档,语言是在RFC 4646符号,所以它也可以有符号de-DE
。因此,您可能希望只检查前两个字符,而不是只获得不含子标签的主要语言。
一个小小的改变会让你得到这个:
var t = window.navigator.language.substr(0, 2)!='de'?'en':'de';
相关文章:
- 在Safari执行javascript之前对其进行修改
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- Safari(Mac OS)上的jQuery平滑滚动问题
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- 主干网.与Safari同步问题
- Express服务器中语言子域的最佳实践
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 以编程方式选择文本Mobile Safari
- onbeforeunload和asp:Safari和FireFox中的更新面板
- 我们可以使用任意的编程语言来动态化HTML页面吗
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- 下载所选语言的pdf文件
- 如何在关闭窗口之前在Safari扩展中捕获窗口关闭
- 是否有一个已知的问题,全日历在Safari上以中文呈现(尽管有语言设置?)
- 可变语言(浏览器语言检测)-在safari中不工作
- 如何让Safari(最新版本)在MP4视频中选择默认音轨,当有多个语言音轨嵌入