typescript - Hur kommer man åt i18n-instansen i en store/action i nuxt?


Jag har en Typescript Vue.js-app som använder vue-i18n och jag vill överföra den till Nuxt.js. I Vue.js-appen initialiserade jag i18n i en fil genom att anropa

// Create VueI18n instance with options
const i18n = new VueI18n({
  locale: 'ja', // set locale
  messages, // set locale messages
})

För att få åtkomst till i18n-instansen från kodplatser (Vue-actions etc.) där det inte finns tillgång till {{ $t('my.translation.key' }} som i mallar, exporterade jag i18n-objektet från filen där jag instanserade det och sedan fick jag åtkomst till det genom att anropa i18n.t('my.translation.key') för att hämta översättningar och andra egenskaper som det aktuella aktiva språket.

Nu, med nuxt.js och nuxt-i18n, finns det ingen sådan explicit initialisering och allt händer "magiskt" genom att konfigurera nuxt-i18n i Nuxt-konfigurationen.

Hur kan jag då komma åt i18n-instansen i actions/andra kodplatser utanför mallar? Jag försökte använda bara this.$i18n.t(...) men det fungerade inte. Dessutom, om jag import Vue from 'vue' och försöker kalla på den via Vue.$i18n.t(...) fungerade det inte. Hur kan jag få tillgång till i18n-instansen?