我试图在组件外部使用i18n,我发现这个解决方案https://github.com/dkfbasel/vuex-i18n/issues/16告诉使用Vue.i18n.translate('str '),但当我调用它时,发生了错误Cannot read property' translate 'of undefined。
我使用以下配置
- 主文件. js**
import i18n from './i18n/i18n';
new Vue({
router,
store,
i18n: i18n,
render: h => h(App)
}).$mount('#app')
- 国际标准协会**
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import i18nData from './i18nData'
Vue.use(VueI18n);
export default new VueI18n({
locale: 'en',
messages: i18nData,
});
- i18n数据. js**
export default {
en: {
//my messages
}
}
然后我试着用这个
import Vue from 'vue';
Vue.i18n.translate('someMessage');
有人能帮帮我吗?
4条答案
按热度按时间vxbzzdmp1#
要在组件的
setup()
之外使用i18n
with Vue 3's composition API,您可以在其global
属性上访问其转换API(如t
函数)。例如,在具有单元可测试的组合函数的文件中:
myss37ts2#
您应该导入
i18n
而不是Vuek3bvogb13#
通过导入i18 n,然后使用i18n.global中的“t”,可以在元件外部使用VueI 18 n *,。
“t”不需要“$”,您可以使用i18n.global.locale更改区域设置**。
8tntrjer4#
我设法让它这样工作:
翻译文本:
获取当前语言: