2

我将 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:如果您知道更多优雅的解决方案,那就太酷了

4

0 回答 0