Vue.js Vue l18n$t未定义

Vue.js Vue l18n$t未定义,vue.js,vee-validate,Vue.js,Vee Validate,我可以在组件中使用$t: :label="$t('sign-up.terms-label')" 在javascript中: case 'email': this.errors.push(this.$t('sign-up.email-exists')); break; 但我不能在extend中使用它: import { extend, localize, ValidationObserver } from 'vee-validate'; localize({ cs: { na

我可以在组件中使用$t:

:label="$t('sign-up.terms-label')"
在javascript中:

 case 'email':
   this.errors.push(this.$t('sign-up.email-exists')); break;
但我不能在extend中使用它:

import { extend, localize, ValidationObserver } from 'vee-validate';
localize({
  cs: {
   names: {
     email: $t('sign-up.email-label'),
EsLint说该函数未定义

我想本地化vee validate的字段名,如下所述:

I18N的定义如下:

Vue.use(VueI18n);

export default new VueI18n({
  locale: process.env.VUE_APP_I18N_LOCALE || 'cs',
  fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'cs',
  messages: loadLocaleMessages(),
});
出现错误,因为$t未在此范围中定义

如图所示,$t应被称为vue组件外部的vue-i18n实例上的方法

如果它是在其他模块中定义的,则应从vue-i18n实例导出的模块中导入:

import i18n from './i18n';

...

localize({
  cs: {
   names: {
     email: i18n.$t('sign-up.email-label'),
     ...
出现错误,因为$t未在此范围中定义

如图所示,$t应被称为vue组件外部的vue-i18n实例上的方法

如果它是在其他模块中定义的,则应从vue-i18n实例导出的模块中导入:

import i18n from './i18n';

...

localize({
  cs: {
   names: {
     email: i18n.$t('sign-up.email-label'),
     ...

您可以从方法中调用extend,此时您将有权访问此。$t


您可以从方法中调用extend,此时您将有权访问此。$t


你能说得更具体些吗?我已经阅读了很多次该文档,但我不明白问题出在哪里。在我链接的部分中,$t不是凭空而来的,而是来自i18n。$t。我添加了更多关于如何初始化i18n库的代码。完整的源代码:。文档显示了如何定义局部变量。但这不是我的情况。我发布的指南非常接近。如果它在另一个模块中,它可能不会显示它是如何完成的,因为导入是通用的JS知识,而不是特定于此库。我试着解释一下。希望这有帮助。你能更具体一点吗?我已经阅读了很多次该文档,但我不明白问题出在哪里。在我链接的部分中,$t不是凭空而来的,而是来自i18n。$t。我添加了更多关于如何初始化i18n库的代码。完整的源代码:。文档显示了如何定义局部变量。但这不是我的情况。我发布的指南非常接近。如果它在另一个模块中,它可能不会显示它是如何完成的,因为导入是通用的JS知识,而不是特定于此库。我试着解释一下。希望这有帮助。