2017-06-06 30 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. 
    } 
});