Я хочу предложить свой сайт на двух разных языках. Я использую vuetify для проверки формы. Проблема в том, что я не знаю, как поместить "Rule-Text" в переменную. Все ли могут помочь.
У меня есть следующая установка:
<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',
],
Как я могу поместить две строки «Требуется идентификатор» и «Разрешены только буквы и цифры, без специальных символов» в переменные, чтобы, когда пользователь меняет язык, язык этих строк также менялся.
Большое спасибо!
христианин
Вам нужно назначить переменную для текста. И используйте язык в соответствии с вашими потребностями. Вот моя идея в демо:
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/[email protected]/dist/vue.js"></script>
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.min.js"></script>
<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.min.css">
<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/@mdi/[email protected]/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>