как вызвать vue i18n из не vue класса? - PullRequest
0 голосов
/ 02 мая 2019

Я использую 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') вернет понятную для человека строку на правильном языке.

Как получить доступ к библиотеке переводов из этого изолированного класса?

1 Ответ

0 голосов
/ 02 мая 2019

Есть нить на vue i18n github там или там . По сути, ответ, по-видимому, заключается в том, что вы должны отделить связанный с i18n код из файла main.js в файл i18n.js. Который может выглядеть так:

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

Затем импортируйте его как чистый файл js, и метод t() должен работать везде.

...