2017-06-06 67 views
0

我在建立一个引导网站,主要是用于说普通话的观众之中。但是,有一部分用户希望以英文浏览网站。我将有两个版本的网站,一个位于主域名:xyz.net,另一个位于en.xyz.net的子域名。默认情况下,用户将查看xyz.net网站,所以我想建立一个模式在启动时的用户,其HTTP“接受语言”并包括显示一次:ZH,ZH-汉斯,或者ZH - 汉语(汉语密码)。这种模态将是一个非常简单的弹出,指出沿着线的东西:“寻找英文网站重定向这里...” ,然后将链接到其他子域:en.xyz.net多语言网站:基于HTTP显示模态的Accept-Language

动态显示此Modal的最佳方法是什么?

我特意决定不使用IP地址位置作为决定哪些用户展示这也因为将在中国和美国谁的用户将要访问的普通话现场的一种手段。

回答

0

动态显示模态,您可以检查以下步骤:

  1. 检查Accept-Language头的Web服务器,保存“是否支持中国的”信息到使用模板技术HTML的响应。
  2. 在HTML中,将上述信息分配给全局变量(window)。
  3. 页被加载后,检查从全局变量(window)上述信息。如果中文不支持,请弹出Modal。

以下是在Node.js的一个例子(利用快速框架和Nunjucks模板):

步骤1.检查Accept-Language报头和信息保存到响应。

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信息到window全局变量

<!doctype html> 
<html> 
<head> 
... 
<script type="text/javascript"> 
    window.isChinese = '{{isChinese}}'; 
</script> 
</head> 
<body>...</body> 
</html> 

第3步:页面加载后,从window检查isChinese。 Popup模式,如果它是“假”。

$(function() { 
    if (window.isChinese === 'false') { 
    // Popup Modal using Bootstrap. 
    } 
});