Я создаю приложение Express для личного пользования, но хочу, чтобы оно поддерживало несколько языков.Я использую i18-узел для английского (en) и испанского (es) и написал два маршрута следующим образом:
function setLanguage (req, res, next) {
const locales = i18n.getLocales()
const { lang } = req.params
if (locales.includes(lang)) {
req.setLocale(lang)
return next()
}
return next(new Error('Page not found'))
}
app.get('/', setLanguage, (req, res) => {
// Renders the home with 'es' as default locale
res.render('index')
})
app.get('/:lang', setLanguage, (req, res) => {
// Renders the same view with 'es' or 'en' locale
res.render('index')
})
Если я посещу localhost:3000/es
или localhost:3000/en
это работает.Если я захожу на localhost:3000/thisdoesnotexist
, он показывает мне не найденную страницу, но если я захожу на localhost:3000/
, он также показывает мне не найденный.
Так что вопрос в том, как я могу установить мультиязычное приложение с пользовательскимстраница не найдена?