dl_site_nuxt/middleware/i18n.js

29 lines
740 B
JavaScript
Raw Normal View History

export default function ({
isHMR,
app,
store,
route,
query,
error,
redirect
}) {
const defaultLocale = app.i18n.fallbackLocale
if (isHMR) {
return
}
const locale = query.lang || defaultLocale
if (!store.state.locales.includes(locale)) {
return error({ message: 'This page could not be found.', statusCode: 404 })
}
store.commit('SET_LANG', locale)
app.i18n.locale = store.state.locale
if (locale === defaultLocale && route.fullPath.indexOf('/' + defaultLocale) === 0) {
const toReplace =
'^/' +
defaultLocale +
(route.fullPath.indexOf('/' + defaultLocale + '/') === 0 ? '/' : '')
const re = new RegExp(toReplace)
return redirect(route.fullPath.replace(re, '/'))
}
}