Follow this guide to upgrade from one major version to the other.

Upgrading from nuxtjs/i18n v7.x

Deprecated localeLocation()

Use localeRoute instead for Options API style. The reason for deprecation is due to I/F changes around route resolving in Vue Router.

Deprecated localeLocation() on Nuxt Context APIs

The Reason is same localeLocation() Option API.

Deprecated $nuxtI18nHead()

Use localeHead() instead for Options API style.

Deprecated nuxtI18n component option

Use defineI18nRoute() compiler macro. because it can be optimized with bundler.

Nuxt2:

pages/about.vue
<script>import Vue from 'vue'export default Vue.extend({  nuxtI18n: {    paths: {      pl: '/polish'    }  }})</script>

Nuxt3:

pages/about.vue
<script setup>defineI18nRoute({  paths: {    pl: '/polish'  }})</script>

Deprecated vuex option

Use dynamicRouteParams option. because, vuex no longer requires in Nuxt3.

nuxt.config.js
 export default defineNuxtConfig({   modules: [     '@nuxtjs/i18n'   ],    i18n: {     // ...-    vuex: true,+    dynamicRouteParams: true,     // ...   } })

About details, See also Lang Switcher.

Deprecated vueI18nLoader option

This option is no longer necessary, because i18n custom block is supported by unplugin-vue-i18n as default.

Change some export APIs name on Nuxt context

The following API will be changed to $:

  • i18n -> $i18n
  • getRouteBaseName() -> $getRouteBaseName()
  • localePath() -> $localePath()
  • localeRoute() -> $localeRoute()
  • switchLocalePath() -> $switchLocalePath()

Deprecated export APIs in Vuex

Vuex extention APIs were removed, because Vuex no longer requires in Nuxt3.

The following APIs are no longer available:

  • $i18n
  • getRouteBaseName()
  • localePath()
  • localeRoute()
  • localeLocation()
  • switchLocalePath()