Jquery 多语言站点:基于HTTP接受语言的显示模式
我正在建设一个自助网站,主要面向讲普通话的观众。然而,有百分之几的用户希望用英语浏览网站。我将有两个版本的网站,一个在主域名:xyz.net,另一个作为子域名在en.xyz.net。默认情况下,用户将查看xyz.net站点,因此我试图为HTTP“Accept Language”(接受语言)不包含以下内容的用户设置一个模式:zh、zh-Hans或zh-Hant(中文代码)。此模式将是一个非常简短的弹出窗口,它大致说明以下内容: “正在查找英文站点?重定向到此处:…”然后将链接到另一个子域:en.xyz.net 动态显示此模式的最佳方法是什么Jquery 多语言站点:基于HTTP接受语言的显示模式,jquery,twitter-bootstrap,http,multilingual,Jquery,Twitter Bootstrap,Http,Multilingual,我正在建设一个自助网站,主要面向讲普通话的观众。然而,有百分之几的用户希望用英语浏览网站。我将有两个版本的网站,一个在主域名:xyz.net,另一个作为子域名在en.xyz.net。默认情况下,用户将查看xyz.net站点,因此我试图为HTTP“Accept Language”(接受语言)不包含以下内容的用户设置一个模式:zh、zh-Hans或zh-Hant(中文代码)。此模式将是一个非常简短的弹出窗口,它大致说明以下内容: “正在查找英文站点?重定向到此处:…”然后将链接到另一个子域:en.x
我特意决定不使用IP地址位置作为决定哪些用户显示此信息的手段,因为在中国和美国都会有用户使用普通话访问该网站 要动态显示模式,可以检查以下步骤:
Accept Language
标题,使用模板技术将“是否支持中文”信息保存到HTML响应中window
)窗口
)检查上述信息。如果不支持中文,则弹出模式接受语言
标题并将信息保存到响应
function isChineseAccepted(acceptLanguages) {
// check whether zh, zh-CN or zh-Hans etc is accepted, return true or false accordingly.
}
router.get('/sample-page', function(req, res) {
var acceptLanguages = req.get('Accept-Language');
var isChinese = isChineseAccepted(acceptLanguages);
res.render('views/sample-page', {
isChinese: isChinese
});
});
步骤2。在HTML中,将isChinese
信息分配给窗口
全局变量
<!doctype html>
<html>
<head>
...
<script type="text/javascript">
window.isChinese = '{{isChinese}}';
</script>
</head>
<body>...</body>
</html>
$(function() {
if (window.isChinese === 'false') {
// Popup Modal using Bootstrap.
}
});