feat: sinicize signup and signin pages.
This commit is contained in:
@@ -1,4 +1,21 @@
|
|||||||
{
|
{
|
||||||
|
"signIn":"Sign In",
|
||||||
|
"signUp":"Sign Up",
|
||||||
|
"username":"User Name",
|
||||||
|
"password":"Password",
|
||||||
|
"Username is required":"Username is required",
|
||||||
|
"Password is required":"Password is required",
|
||||||
|
"Create your account":"Create your account",
|
||||||
|
"createAccount":"Create Account",
|
||||||
|
"email":"E-mail",
|
||||||
|
"Sign in instead":"Sign in instead",
|
||||||
|
"Please enter your username":"Please enter your username",
|
||||||
|
"Username must be at least 4 characters":"Username must be at least 4 characters",
|
||||||
|
"Please enter your e-mail address":"Please enter your e-mail address",
|
||||||
|
"E-mail address must be valid":"E-mail address must be valid",
|
||||||
|
"Please enter your password":"Please enter your password",
|
||||||
|
"Password must be at least 8 characters":"Password must be at least 8 characters",
|
||||||
|
"Please confirm your password":"Please confirm your password",
|
||||||
"welcomeTo": "Welcome to",
|
"welcomeTo": "Welcome to",
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
"setApiKey": "Set API Key",
|
"setApiKey": "Set API Key",
|
||||||
|
|||||||
@@ -1,4 +1,21 @@
|
|||||||
{
|
{
|
||||||
|
"signIn":"Sign In",
|
||||||
|
"signUp":"Sign Up",
|
||||||
|
"username":"User Name",
|
||||||
|
"password":"Password",
|
||||||
|
"Username is required":"Username is required",
|
||||||
|
"Password is required":"Password is required",
|
||||||
|
"Create your account":"Create your account",
|
||||||
|
"createAccount":"Create Account",
|
||||||
|
"email":"E-mail",
|
||||||
|
"Sign in instead":"Sign in instead",
|
||||||
|
"Please enter your username":"Please enter your username",
|
||||||
|
"Username must be at least 4 characters":"Username must be at least 4 characters",
|
||||||
|
"Please enter your e-mail address":"Please enter your e-mail address",
|
||||||
|
"E-mail address must be valid":"E-mail address must be valid",
|
||||||
|
"Please enter your password":"Please enter your password",
|
||||||
|
"Password must be at least 8 characters":"Password must be at least 8 characters",
|
||||||
|
"Please confirm your password":"Please confirm your password",
|
||||||
"welcomeTo": "Добро пожаловать в",
|
"welcomeTo": "Добро пожаловать в",
|
||||||
"language": "Язык",
|
"language": "Язык",
|
||||||
"setApiKey": "Установить ключ API",
|
"setApiKey": "Установить ключ API",
|
||||||
|
|||||||
@@ -1,4 +1,21 @@
|
|||||||
{
|
{
|
||||||
|
"signIn":"登录",
|
||||||
|
"signUp":"注册",
|
||||||
|
"username":"用户名",
|
||||||
|
"password":"密码",
|
||||||
|
"Username is required":"请填写用户名",
|
||||||
|
"Password is required":"请填写密码",
|
||||||
|
"Create your account":"创建你的账号",
|
||||||
|
"createAccount":"创建账号",
|
||||||
|
"email":"邮箱",
|
||||||
|
"Sign in instead":"返回登录",
|
||||||
|
"Please enter your username":"请输入你的用户名",
|
||||||
|
"Username must be at least 4 characters":"用户名至少四个字符",
|
||||||
|
"Please enter your e-mail address":"请输入你的电子邮箱",
|
||||||
|
"E-mail address must be valid":"电子邮箱地址格式不正确",
|
||||||
|
"Please enter your password":"请输入你的密码",
|
||||||
|
"Password must be at least 8 characters":"密码至少八个字符",
|
||||||
|
"Please confirm your password":"请输入确认密码",
|
||||||
"welcomeTo": "欢迎来到",
|
"welcomeTo": "欢迎来到",
|
||||||
"language": "语言",
|
"language": "语言",
|
||||||
"setApiKey": "设置API密钥",
|
"setApiKey": "设置API密钥",
|
||||||
|
|||||||
@@ -15,20 +15,20 @@
|
|||||||
class="mt-15"
|
class="mt-15"
|
||||||
elevation="0"
|
elevation="0"
|
||||||
>
|
>
|
||||||
<div class="text-center text-h4">Sign in</div>
|
<div class="text-center text-h4">{{$t('signIn')}}</div>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-form ref="signInForm">
|
<v-form ref="signInForm">
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="formData.username"
|
v-model="formData.username"
|
||||||
:rules="formRules.username"
|
:rules="formRules.username"
|
||||||
label="User name"
|
:label="$t('username')"
|
||||||
variant="underlined"
|
variant="underlined"
|
||||||
clearable
|
clearable
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="formData.password"
|
v-model="formData.password"
|
||||||
:rules="formRules.password"
|
:rules="formRules.password"
|
||||||
label="Password"
|
:label="$t('password')"
|
||||||
variant="underlined"
|
variant="underlined"
|
||||||
@keyup.enter="submit"
|
@keyup.enter="submit"
|
||||||
clearable
|
clearable
|
||||||
@@ -48,14 +48,14 @@
|
|||||||
@click="navigateTo('/account/signup')"
|
@click="navigateTo('/account/signup')"
|
||||||
variant="text"
|
variant="text"
|
||||||
color="primary"
|
color="primary"
|
||||||
>Create account</v-btn>
|
>{{$t('createAccount')}}</v-btn>
|
||||||
|
|
||||||
<v-btn
|
<v-btn
|
||||||
color="primary"
|
color="primary"
|
||||||
:loading="submitting"
|
:loading="submitting"
|
||||||
@click="submit"
|
@click="submit"
|
||||||
size="large"
|
size="large"
|
||||||
>Submit</v-btn>
|
>{{$t('signIn')}}</v-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {useUser} from "~/composables/states";
|
import {useUser} from "~/composables/states";
|
||||||
|
const { $i18n } = useNuxtApp()
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: 'vuetify-app'
|
layout: 'vuetify-app'
|
||||||
})
|
})
|
||||||
@@ -79,10 +79,10 @@ const formData = ref({
|
|||||||
})
|
})
|
||||||
const formRules = ref({
|
const formRules = ref({
|
||||||
username: [
|
username: [
|
||||||
v => !!v || 'Username is required'
|
v => !!v || $i18n.t('Username is required')
|
||||||
],
|
],
|
||||||
password: [
|
password: [
|
||||||
v => !!v || 'Password is required'
|
v => !!v || $i18n.t('Password is required')
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
const errorMsg = ref(null)
|
const errorMsg = ref(null)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
|
const { $i18n } = useNuxtApp()
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: 'vuetify-app'
|
layout: 'vuetify-app'
|
||||||
})
|
})
|
||||||
@@ -19,21 +20,21 @@ const fieldErrors = ref({
|
|||||||
|
|
||||||
const formRules = ref({
|
const formRules = ref({
|
||||||
username: [
|
username: [
|
||||||
v => !!v || 'Please enter your username',
|
v => !!v || $i18n.t('Please enter your username'),
|
||||||
v => v.length >= 4 || 'Username must be at least 4 characters'
|
v => v.length >= 4 || $i18n.t('Username must be at least 4 characters')
|
||||||
],
|
],
|
||||||
email: [
|
email: [
|
||||||
v => !!v || 'Please enter your e-mail address',
|
v => !!v || $i18n.t('Please enter your e-mail address'),
|
||||||
v => /.+@.+\..+/.test(v) || 'E-mail address must be valid'
|
v => /.+@.+\..+/.test(v) || $i18n.t('E-mail address must be valid')
|
||||||
],
|
],
|
||||||
password1: [
|
password1: [
|
||||||
v => !!v || 'Please enter your password',
|
v => !!v || $i18n.t('Please enter your password'),
|
||||||
v => v.length >= 8 || 'Password must be at least 8 characters'
|
v => v.length >= 8 || $i18n.t('Password must be at least 8 characters')
|
||||||
],
|
],
|
||||||
password2: [
|
password2: [
|
||||||
v => !!v || 'Please confirm your password',
|
v => !!v || $i18n.t('Please confirm your password'),
|
||||||
v => v.length >= 8 || 'Password must be at least 8 characters',
|
v => v.length >= 8 || $i18n.t('Password must be at least 8 characters'),
|
||||||
v => v === formData.value.password1 || 'Confirm password must match password'
|
v => v === formData.value.password1 || $i18n.t('Confirm password must match password')
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -101,14 +102,14 @@ const handleFieldUpdate = (field) => {
|
|||||||
class="mt-15"
|
class="mt-15"
|
||||||
elevation="0"
|
elevation="0"
|
||||||
>
|
>
|
||||||
<div class="text-center text-h4">Create your account</div>
|
<div class="text-center text-h4">{{$t('Create your account')}}</div>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-form ref="signUpForm" class="mt-5">
|
<v-form ref="signUpForm" class="mt-5">
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="formData.username"
|
v-model="formData.username"
|
||||||
:rules="formRules.username"
|
:rules="formRules.username"
|
||||||
:error-messages="fieldErrors.username"
|
:error-messages="fieldErrors.username"
|
||||||
label="User name"
|
:label="$t('username')"
|
||||||
variant="underlined"
|
variant="underlined"
|
||||||
@update:modelValue="handleFieldUpdate('username')"
|
@update:modelValue="handleFieldUpdate('username')"
|
||||||
clearable
|
clearable
|
||||||
@@ -118,7 +119,7 @@ const handleFieldUpdate = (field) => {
|
|||||||
v-model="formData.email"
|
v-model="formData.email"
|
||||||
:rules="formRules.email"
|
:rules="formRules.email"
|
||||||
:error-messages="fieldErrors.email"
|
:error-messages="fieldErrors.email"
|
||||||
label="Email"
|
:label="$t('email')"
|
||||||
variant="underlined"
|
variant="underlined"
|
||||||
@update:modelValue="handleFieldUpdate('email')"
|
@update:modelValue="handleFieldUpdate('email')"
|
||||||
clearable
|
clearable
|
||||||
@@ -128,7 +129,7 @@ const handleFieldUpdate = (field) => {
|
|||||||
v-model="formData.password1"
|
v-model="formData.password1"
|
||||||
:rules="formRules.password1"
|
:rules="formRules.password1"
|
||||||
:error-messages="fieldErrors.password1"
|
:error-messages="fieldErrors.password1"
|
||||||
label="Password"
|
:label="$t('password')"
|
||||||
variant="underlined"
|
variant="underlined"
|
||||||
@update:modelValue="handleFieldUpdate('password1')"
|
@update:modelValue="handleFieldUpdate('password1')"
|
||||||
clearable
|
clearable
|
||||||
@@ -138,7 +139,7 @@ const handleFieldUpdate = (field) => {
|
|||||||
v-model="formData.password2"
|
v-model="formData.password2"
|
||||||
:rules="formRules.password2"
|
:rules="formRules.password2"
|
||||||
:error-messages="fieldErrors.password2"
|
:error-messages="fieldErrors.password2"
|
||||||
label="Confirm password"
|
:label="$t('confirmPassword')"
|
||||||
variant="underlined"
|
variant="underlined"
|
||||||
@update:modelValue="handleFieldUpdate('password2')"
|
@update:modelValue="handleFieldUpdate('password2')"
|
||||||
clearable
|
clearable
|
||||||
@@ -155,14 +156,14 @@ const handleFieldUpdate = (field) => {
|
|||||||
@click="navigateTo('/account/signin')"
|
@click="navigateTo('/account/signin')"
|
||||||
variant="text"
|
variant="text"
|
||||||
color="primary"
|
color="primary"
|
||||||
>Sign in instead</v-btn>
|
>{{$t('Sign in instead')}}</v-btn>
|
||||||
|
|
||||||
<v-btn
|
<v-btn
|
||||||
size="large"
|
size="large"
|
||||||
color="primary"
|
color="primary"
|
||||||
:loading="submitting"
|
:loading="submitting"
|
||||||
@click="submit"
|
@click="submit"
|
||||||
>Submit</v-btn>
|
>{{$t('signUp')}}</v-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
|
|||||||
Reference in New Issue
Block a user