我有一个"伪多语言"基于this stack的解决方案托管在Tumblr上的网站/博客(因此我无法访问服务器端编程)。
<script>
var defaultLanguage = 'pt';
$.ajax({
url: "//ajaxhttpheaders.appspot.com",
dataType: 'jsonp',
success: function( headers ) {
var language = headers['Accept-Language'].substring( 0, 2 );
if( language != defaultLanguage ) {
$( 'span[lang="pt"], p[lang="pt"]' ).hide( 0 );
$( 'span[lang="' + language + '"], p[lang="' + language + '"]' ).show( 0 );
}
}
});
</script>
非常非常简单。我手动翻译每个帖子中的所有内容(p!),然后根据AJAX请求隐藏。
当我发现它时,我正在测试Mozilla Firefox,它的工作就像一个魅力。然后由于其他原因我被迫转移到谷歌浏览器,然后实施不再工作。
有没有办法可以强制此代码覆盖Chrome设置中的任何内容,或者考虑到我使用Tumblr,向用户提供这些小标记会在运行时更改它吗?
答案 0 :(得分:1)
未经测试,但我认为你可以这样做:
var defaultLanguage = 'pt';
$.ajax({
url: "//ajaxhttpheaders.appspot.com",
dataType: 'jsonp',
success: function( headers ) {
var language = headers['Accept-Language'].substring( 0, 2 );
if( language != defaultLanguage ) {
$('[lang="pt"]').hide(0);
}else{
$('[lang="' + language + '"]').show(0);
}
}
});
您只需将[lang]
作为属性选择器传递一次(我们不需要同时添加span和paragraph,因为这应该检索与选择器匹配的任何元素)。