如何从非vue类调用vue i18n?

时间:2019-05-02 17:15:44

标签: vue.js element-ui vue-i18n

我正在将vue-i18n用于vuejs应用。

很好,除了我如何从不是vue扩展的类中访问翻译。下面是一个简单的类,其中包含validation methods,供element-ui使用,例如:

import Validate from '@/services/Validate';

class FormValidate {
  public password(rule: any, value: string, callback: any) {
    callback(Validate.password(value) ? undefined : new Error('errors.passwordInvalid'));
  }
}

export default new FormValidate();

以上错误“ errors.passwordInvalid”是翻译文件的密钥。

在典型组件$t('errors.passwordInvalid')中,将以正确的语言返回人类友好的字符串。

如何从这个孤立的类访问翻译库?

1 个答案:

答案 0 :(得分:0)

在vue i18n github therethere上有一个线程。基本上,答案似乎是,您应该将与i18n相关的代码从main.js文件分离到i18n.js文件中。看起来像这样:

export default new VueI18n({
    // with all your settings here
})

然后将其作为纯js文件导入,t()方法应可在任何地方使用。