我已經安裝了快車語言環境express-locale總是返回默認值 - 爲什麼?
npm install --save express-locale
,並將其配置是這樣的:
app = express();
app.use(locale({
priority: ['accept-language', 'cookie', 'domain', 'default']
}));
但是當一個頁面被稱爲:
app.get('/', (req, res) => {
console.log(req.locale);
});
我總是得到:
{code:'en_GB',來源: 'default'}
不管我如何更改瀏覽器的首選語言。我查看了這個模塊中的代碼,並且看到req.acceptedLanguages
(當試圖解析'accept-language'時)的引用,在我的情況下它總是返回undefined(這解釋了爲什麼默認情況下),但是我不明白的是,如果我看
console.log(req.header('Accept-Language'));
我得到:
SV,EN-GB; q = 0.8,連接; q = 0.6,ES; q = 0.4,FR; q = 0.2,ast; q = 0.2,en-US; q = 0.2
從中很明顯我應該把瑞典語作爲我的主要語言...所以wron克與這?
作爲一個單獨但相關的問題:即使req.acceptedLanguages
返回一個值,它將沒有語言環境。實際上,sv
不足以推導出瑞典語在瑞典(sv-SE
)和芬蘭(sv-FI
)中使用的語言環境。爲什麼這很重要?因爲我試圖顯示一個價格,它需要用戶的貨幣(瑞典=克朗,芬蘭=歐元),但沒有一個地區我不明白。這通常如何完成?