我认为,有关i18n与vee-validate集成的文档不完整。如果我将i18n与vee-validate结合使用,我仍然不知道如何翻译字段名称。
这是我的main.js:
import ruValidation from 'vee-validate/dist/locale/ru'
import enValidation from 'vee-validate/dist/locale/en'
Vue.use(VeeValidate, {
i18nRootKey: 'validations',
i18n,
dictionary: {
en: enValidation,
ru: ruValidation
},
errorBagName: 'vErrors',
events: ''
})
但问题是-我该如何转换属性?我试过了:
import attributesRU from './locales/veevalidate/ru/attributes'
dictionary: {
en: enValidation,
ru: { message: ruValidation, attributes: attributesRU }
},
attribute.js的内容:
export const attributes = {
mail: 'Эл.почта'
}
输入:
<input type="text" name="mail" v-validate="'required|email'">
但是,如果我添加以下内容,即使没有消息也无法翻译,但没有成功:
ru: { message: ruValidation, attributes: attributesRU }
代替:
ru: ruValidation
最佳答案
您可以像这样制作字典
const dictionary = {
en: {
messages: {
required: (field, val) => `Field ${field} is required`
}
},
ru: {
messages: {
required: (field, val) => `поле ${field} обязательно`
}
},
};
export default dictionary;
您必须将其导入到组件中,然后添加到验证器库中,如下所示
this.$validator.localize(dictionary);
希望这能解决您的问题。
关于javascript - 如何使用vee-validate和vue-i18n转换字段名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53928123/