Vuetify 验证消息变量

Vuetify validation message variable

我想以两种不同的语言提供我的网站。我使用 vuetify 进行表单验证。问题是,我不知道如何将“规则文本”放入变量中。大家可以帮忙吗

我有以下设置:

<v-form ref="form" v-model="valid" lazy-validation @submit.prevent="submit">
   <v-text-field class="mt-5"
     v-model="id"
     color= "orange"
     label="Enter ID"
     :rules="IdRule"
     counter
     maxlength="30"
     required
     clearable
     outlined
     v-on:keyup.enter="comp"
   ></v-text-field>
</v-form>

...
    
IdRule: [
  v => !!v || 'ID is required',
  v => /^[a-zA-Z0-9\s]*$/.test(v) || 'Only letters and numbers allowed, no special characters',
],

如何将 'ID is required' 和 'Only letters and numbers allowed, no special characters' 这两个字符串放入变量中,这样当用户更改语言时,这些字符串的语言也会更改。

非常感谢!

基督教徒

您需要为文本分配一个变量。并根据您的需要使用语言。这是我在演示中的想法:

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data() {
    return {
      title: '',
      email: '',
      languages: ['english', 'bangla'],
      language: 'english',
      rulesText: {
        bangla: {
          minLen: 'অন্তত ২০',
          required: 'প্রয়োজন'
        },
        english: {
          minLen: 'At least 20',
          required: 'Required'
        }
      },
      rules: {
        required: value => !!value || this.rulesText[this.language].required,
        counter: value => value.length >= 20 || this.rulesText[this.language].minLen,
      },
    }
  },
})
<script src="https://cdn.jsdelivr.net/npm/babel-polyfill/dist/polyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.3.18/dist/vuetify.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vuetify@2.3.18/dist/vuetify.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css">
<div id="app">
  <v-app id="inspire">
    <v-form>
      <v-container>
        <v-row>
          <v-col cols="12" sm="6">
            <v-select :items="languages" v-model="language"></v-select>
          </v-col>
          <v-col cols="12" sm="6">
            <v-text-field v-model="title" :rules="[rules.required, rules.counter]" label="Title" counter maxlength="20"></v-text-field>
          </v-col>


        </v-row>
      </v-container>
    </v-form>
  </v-app>
</div>