我可以在组件中使用$t:
:label="$t('sign-up.terms-label')"在javascript中:
case 'email':
this.errors.push(this.$t('sign-up.email-exists')); break;但我不能在扩展中使用它:
import { extend, localize, ValidationObserver } from 'vee-validate';
localize({
cs: {
names: {
email: $t('sign-up.email-label'),EsLint说这个函数是未定义的。
我想本地化vee-validate的字段名称,如下所述:
https://logaretm.github.io/vee-validate/guide/localization.html#using-the-default-i18n
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(),
});发布于 2020-02-03 15:24:57
出现错误,因为$t未在此作用域中定义。
如the guide所示,$t应该在Vue组件之外的vue-i18n实例上被引用为一个方法。
如果它是在另一个模块中定义的,则应该从从中导出vue-i18n实例的模块中导入:
import i18n from './i18n';
...
localize({
cs: {
names: {
email: i18n.$t('sign-up.email-label'),
...发布于 2020-02-04 00:04:18
您可以从created()方法调用extend,这样您就可以访问this.$t了。
created() {
localize({
cs: {
names: {
email: this.$t('sign-up.email-label'),
//...
}https://stackoverflow.com/questions/60017991
复制相似问题