2

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

一切都很好,除了我如何从一个不是 vue 扩展的类中访问翻译。下面是一个简单的类,其中包含要使用的 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')中,将以正确的语言返回对人类友好的字符串。

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

4

1 回答 1

2

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

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

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

于 2019-05-02T17:25:49.577 回答