我将 nuxt 和 nuxt-i18n 用于我的多语言网站。默认情况下,如果用户打开我的网站,他们会重定向到他们的语言页面。在此之后,他可以更改语言环境。但是如果用户关闭浏览器选项卡并再次打开它,他不会被重定向。我在配置中设置:
detectBrowserLanguage: {
useCookie: true,
cookieKey: 'i18n_redirected',
alwaysRedirect: true, // this changed
},
在这种情况下,用户总是在打开站点时重定向,但他不能手动更改语言环境。
我需要什么:当用户来到站点时,他重定向到他的语言环境页面,例如 mysite.com/en 或 mysite.com/ru 在此用户可以更改语言环境之后。当用户关闭浏览器选项卡并在新选项卡中进入站点时,他再次重定向。
升级版:
我为简单的任务找到了简单的解决方案。任务:如果浏览器语言为en ,则在主页上重定向到mysite.com/en在此用户可以手动将语言更改为默认mysite.com它仅用于主页。我在 index.vue 中做了以下操作
beforeMount () {
const browserLang = (window.navigator ? (window.navigator.language
|| window.navigator.systemLanguage
|| window.navigator.userLanguage) : "ru").toLowerCase().substr(0, 2)
if (browserLang == 'en' && window.location.pathname == '/'
&& document.referrer.indexOf(window.location.origin) < 0) {
window.location.pathname = '/en'
}
}
它运作良好。我希望它对某人有所帮助。
PS:如果您知道更多优雅的解决方案,那就太酷了