ms-dred
@ms-dred
Вечно что то не то и что то не так...

Как более правильно определить выбранный язык пользователем на сайте?

Всем привет.
Периодически сталкиваюсь с проблемой когда вроде бы выбран язык по дефолту RU, но на сайте выводится EN, происходит какой то сбой или что то вроде того.
Проверка языка очень примитивна и определяется непосредственно по URL с помощью мидлваре

Если пользователь переходит на сайт в каталог /en/ то все url формируются с данной директорией и естественно в мидлваре определяется языковой пакет.

Вот как я это сделал
module.exports = (request, response, next) => {
    locale = request.originalUrl.replace(/.*\/(en|ru)\/.*/, '$1'), noLang = /\//.test(locale), noLang && (locale = "ru"), (request.CONST = response.locals.CONST = require(`../languages/${locale}`)),  next()
}


Не знаю даже почему, но иногда бывает что подключается не тот языковой пакет.
Быть может делать как то все по другому?
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
IvanBlacky
@IvanBlacky
back-end разработчик
Как вариант -- сначала на клиенте сделать проверку на то, какой язык используется в браузере, например, при помощи этой библиотеки, класть это в куку и проверять значение куки на сервере уже. Ну и, понятное дело, сделать переключалку языка в веб-морде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы