我有一个使用vue-i18n的typescript Vue.js应用程序,我想把它移植到Nuxt.js上。在Vue.js应用程序中,我通过调用以下方法在文件中初始化了i18n
// Create VueI18n instance with options
const i18n = new VueI18n({
locale: 'ja', // set locale
messages, // set locale messages
})
从代码位置(Vue操作等)访问i18n实例在不能像在模板中那样访问{{ $t('my.translation.key' }}
的地方,我从实例化它的文件中导出了i18n
对象,然后通过调用i18n.t('my.translation.key')
来访问它,以检索翻译和其他属性,比如当前的活动语言。
现在,对于nuxt.js和nuxt-i18n,没有这样的显式初始化,通过在Nuxt配置中配置nuxt-i18n,一切都会“神奇地”发生。
那么,我如何在模板之外的操作/其他代码位置访问i18n实例呢?我试着只使用this.$i18n.t(...)
,但这不起作用。此外,如果我import Vue from 'vue'
并尝试通过Vue.$i18n.t(...)
调用它,它不起作用。如何访问i18n实例?
发布于 2021-07-08 22:35:53
我可以像这样在*.vue文件部分使用它:
this.$t("locale.string");
我在nuxt.config.js中包含了i18n模块,如下所示:
modules: [
['nuxt-i18n', {
locales: [
{
name: 'Türkçe',
code: 'tr',
iso: 'tr-TR',
file: 'tr-TR.js'
},
{
name: 'English',
code: 'en',
iso: 'en-US',
file: 'en-US.js'
},
],
langDir: 'lang/',
defaultLocale: 'en',
}]
],
https://stackoverflow.com/questions/60641348
复制相似问题