我试图在一个组件之外使用i18n,我发现这个解决方案https://github.com/dkfbasel/vuex-i18n/issues/16告诉我如何使用Vue.i18n.translate('str'),但当我调用它时,出现了一个错误,无法读取未定义的属性"translate".

我正在使用以下配置

main.js

import i18n from './i18n/i18n';
new Vue({
    router,
    store,
    i18n: i18n,
    render: h => h(App)
}).$mount('#app')

i18n.js

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import i18nData from './i18nData'
Vue.use(VueI18n);
export default new VueI18n({
  locale: 'en',
  messages: i18nData,
});

i18nData.js

export default {
    en: {
        //my messages
    }
}

然后我试着用这个

import Vue from 'vue';
Vue.i18n.translate('someMessage');

有人能帮我吗?

推荐答案

你应该导入i18n而不是Vue

import i18n from './i18n'

i18n.tc('someMessage')

Vue.js相关问答推荐

Nuxt3 Build . put文件夹保持空,没有从.nuxt复制任何内容

Vue3组合-如何在组件卸载时注销回调

VUE:带自定义组件的数组输入绑定

Vue 3 在一个值更改问题后再次重新渲染每一行

在 v-for 中定义变量有什么问题吗?

如何在vue中获取特定类别的产品列表

如何使用带有自定义标签和类的`transition-group`

为什么在 Vue.js 中使用 `var` 关键字?

Vue 单元测试:您正在开发模式下运行 Vue?

如何在 Vue.js 中使用 MaterializeCss?

Vue.js 从模板中分离样式

Transition-group children must be keyed...but they are keyed

vuejs中通过变量动态调用方法

为什么我在 vue.js 中得到避免使用 JavaScript 一元运算符作为属性名称?

为 webpack HMR Vue.js 包含来自外部项目文件夹的可导入模块

错误:Node Sass 尚不支持您当前的环境:Linux 64-bit with Unsupported runtime (88)

在找不到图像源时设置替代图像

在 VUE JS 的光标位置插入字符

VueJS 2 + ASP.NET MVC 5

Vuex 模块Mutations