Я установил экспресс-локали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);
});
Я всегда получаю:
{код: 'en_GB', источник: 'default'}
Независимо от того, как я изменяю предпочтительный язык моего браузера. Я просмотрел код в этом модуле, и я вижу ссылку на req.acceptedLanguages
(при попытке решить для «accept-language»), который в моем случае всегда возвращает undefined (что объясняет, почему он идет по умолчанию), но что я не понимаю, если посмотреть на
console.log(req.header('Accept-Language'));
я получаю:
С.В., ан-ГБ; д = 0,8, ан; д = 0,6, ы, д = 0,4, пт; д = 0,2, ast; q = 0,2, en-US; q = 0,2
, из которого ясно, что я должен иметь шведский язык в качестве основного языка ... так что это wron g с этим?
как отдельный, но связанный с этим вопрос: даже если req.acceptedLanguages
вернул значение, оно было бы без языкового стандарта. Фактически, sv
не является достаточным для вывода языкового стандарта, поскольку на шведском языке говорят в Швеции (sv-SE
) и Финляндии (sv-FI
). почему это имеет значение? потому что я пытаюсь показать цену, и она должна быть в валюте пользователя (Sweden = kroner, Finland = Euro), но без локали я не могу понять это. как это вообще делается?