我想在验证验证失败时显示翻译后的规则消息

模板部分

<v-text-field
    v-model="message.name"
    outlined
    :label="$t('page.contact.form.name')"
    :rules=nameValidationRules
></v-text-field>

脚本部分

const nameValidationRules = ref([requiredRule, blankValidator])

验证程序规则保存在"validationRules.ts"中

export const requiredRule = (value: any): string | boolean => !!value || 'This field is required';
export const blankValidator = (value: string | null | undefined): string | boolean => !value || !!value?.trim() || 'This field cannot be blank.';

我想用i18n变量替换"This field is required".

推荐答案

您可以将转换函数传递给规则定义:

const {t} = useI18n()

const nameValidationRules = ref([requiredRule(t), blankValidator(t)])
export const requiredRule = (t: any) => (value: any): string | boolean => !!value || t('required');
export const blankValidator = (t: any) => (value: string | null | undefined): string | boolean => !value || !!value?.trim() || t('not_blank');

Vue.js相关问答推荐

通过另一个文件调用模块化窗口组件

元素不会对react 性props 的更改做出react

我需要在 nuxt2 上使用 /index 作为 url 的一部分

vite - 具有相对assets资源 路径的子页面

Nuxt 2.15.7 的构建错误 - 无法解析 CSS @font-face URL

如何在Typescript语言Vuejs中使用watch功能?

Vue-Router 抽象父路由

如何将 vuetify 2.0 beta 安装到新的 vue cli 项目中?

错误:vue-loader 要求 @vue/compiler-sfc 存在于依赖树中

Laravel Blade 模板将数据传递给 Vue JS 组件

如何在 vue 3 中获取路由的参数?

使用 Vue-cli,我在哪里声明我的全局变量?

如何在 vuetify 中将工具提示添加到数据表标题?

在Vue中单击路由链接上的激活方法

beforeCreate 挂钩中的 Vue 2.1 调用方法不起作用

更改事件上的 Select2 在 Vuejs 中不起作用

如何从浏览器的源中删除 webpack://

在 Vue 应用程序中创建一个类的单个实例

Vue中的嵌套循环

路由使用 nuxt-i18n 在 nuxt 中推送区域设置路由