Localize profile page

This commit is contained in:
Florian Dupret 2021-03-20 09:29:45 +01:00
commit 665c51f5ea
4 changed files with 41 additions and 19 deletions

View file

@ -43,7 +43,8 @@
"filter": "Filter", "filter": "Filter",
"yes": "Yes", "yes": "Yes",
"no": "No", "no": "No",
"token": "Token" "token": "Token",
"field-required": "Field Required"
}, },
"page": { "page": {
"home-page": "Home Page", "home-page": "Home Page",
@ -87,7 +88,16 @@
"users": "Users", "users": "Users",
"groups": "Groups", "groups": "Groups",
"could-not-validate-credentials": "Could Not Validate Credentials", "could-not-validate-credentials": "Could Not Validate Credentials",
"login": "Login" "login": "Login",
"groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
"upload-photo": "Upload Photo",
"reset-password": "Reset Password",
"current-password": "Current Password",
"new-password": "New Password",
"confirm-password": "Confirm Password",
"password-must-match": "Password must match",
"e-mail-must-be-valid": "E-mail must be valid",
"use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
}, },
"meal-plan": { "meal-plan": {
"shopping-list": "Shopping List", "shopping-list": "Shopping List",

View file

@ -43,7 +43,8 @@
"filter": "Filtrer", "filter": "Filtrer",
"no": "Non", "no": "Non",
"yes": "Oui", "yes": "Oui",
"token": "Jeton" "token": "Jeton",
"field-required": "Champ obligatoire"
}, },
"page": { "page": {
"home-page": "Accueil", "home-page": "Accueil",
@ -85,7 +86,18 @@
"group-name": "Nom du groupe", "group-name": "Nom du groupe",
"link-id": "ID du lien", "link-id": "ID du lien",
"groups": "Groupes", "groups": "Groupes",
"users": "Utilisateurs" "users": "Utilisateurs",
"could-not-validate-credentials": "La vérification de vos identifiants a échoué",
"login": "Connexion",
"groups-can-only-be-set-by-administrators": "Les groupes sont assignés par les administrateurs",
"confirm-password": "Confirmer mot de passe",
"current-password": "Mot de passe actuel",
"e-mail-must-be-valid": "L'e-mail doit être valide",
"new-password": "Nouveau mot de passe",
"password-must-match": "Les mots de passe doivent correspondre",
"reset-password": "Réinitialiser le mot de passe",
"upload-photo": "Importer une photo",
"use-8-characters-or-more-for-your-password": "Utiliser au moins 8 caractères pour votre mot de passe"
}, },
"meal-plan": { "meal-plan": {
"shopping-list": "Liste d'achats", "shopping-list": "Liste d'achats",

View file

@ -4,12 +4,12 @@ export const validators = {
emailRule: v => emailRule: v =>
!v || !v ||
/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) ||
"E-mail must be valid", this.$t('user.e-mail-must-be-valid'),
existsRule: value => !!value || "Field Required", existsRule: value => !!value || this.$t('general.field-required'),
minRule: v => minRule: v =>
v.length >= 8 || "Use 8 characters or more for your password", v.length >= 8 || this.$t('user.use-8-characters-or-more-for-your-password'),
}; };
}, },
}; };

View file

@ -13,9 +13,9 @@
> >
</v-progress-circular> </v-progress-circular>
</span> </span>
Profile {{$t('settings.profile')}}
<v-spacer></v-spacer> <v-spacer></v-spacer>
User ID: {{ user.id }} {{$t('user.user-id-with-value', {id: user.id }) }}
</v-card-title> </v-card-title>
<v-divider></v-divider> <v-divider></v-divider>
<v-card-text> <v-card-text>
@ -39,7 +39,7 @@
<v-col cols="12" md="9"> <v-col cols="12" md="9">
<v-form> <v-form>
<v-text-field <v-text-field
label="Full Name" :label="$t('user.full-name')"
required required
v-model="user.fullName" v-model="user.fullName"
:rules="[existsRule]" :rules="[existsRule]"
@ -47,7 +47,7 @@
> >
</v-text-field> </v-text-field>
<v-text-field <v-text-field
label="Email" :label="$t('user.email')"
:rules="[emailRule]" :rules="[emailRule]"
validate-on-blur validate-on-blur
required required
@ -55,11 +55,11 @@
> >
</v-text-field> </v-text-field>
<v-text-field <v-text-field
label="Group" :label="$t('user.group')"
readonly readonly
v-model="user.group" v-model="user.group"
persistent-hint persistent-hint
hint="Group groups can only be set by administrators" :hint="$t('user.groups-can-only-be-set-by-administrators')"
> >
</v-text-field> </v-text-field>
</v-form> </v-form>
@ -70,7 +70,7 @@
<v-card-actions> <v-card-actions>
<UploadBtn <UploadBtn
icon="mdi-image-area" icon="mdi-image-area"
text="Upload Photo" :text="$t('user.upload-photo')"
:url="userProfileImage" :url="userProfileImage"
file-name="profile_image" file-name="profile_image"
/> />
@ -86,7 +86,7 @@
<v-col cols="12" md="4" sm="12"> <v-col cols="12" md="4" sm="12">
<v-card height="100%"> <v-card height="100%">
<v-card-title class="headline"> <v-card-title class="headline">
Reset Password {{$t('user.reset-password')}}
<v-spacer></v-spacer> <v-spacer></v-spacer>
</v-card-title> </v-card-title>
<v-divider></v-divider> <v-divider></v-divider>
@ -95,7 +95,7 @@
<v-text-field <v-text-field
v-model="password.current" v-model="password.current"
prepend-icon="mdi-lock" prepend-icon="mdi-lock"
label="Current Password" :label="$t('user.current-password')"
:rules="[existsRule]" :rules="[existsRule]"
validate-on-blur validate-on-blur
:type="showPassword ? 'text' : 'password'" :type="showPassword ? 'text' : 'password'"
@ -104,7 +104,7 @@
<v-text-field <v-text-field
v-model="password.newOne" v-model="password.newOne"
prepend-icon="mdi-lock" prepend-icon="mdi-lock"
label="New Password" :label="$t('user.new-password')"
:rules="[minRule]" :rules="[minRule]"
:type="showPassword ? 'text' : 'password'" :type="showPassword ? 'text' : 'password'"
@click:append="showPassword.newOne = !showPassword.newOne" @click:append="showPassword.newOne = !showPassword.newOne"
@ -112,9 +112,9 @@
<v-text-field <v-text-field
v-model="password.newTwo" v-model="password.newTwo"
prepend-icon="mdi-lock" prepend-icon="mdi-lock"
label="Confirm Password" :label="$t('user.confirm-password')"
:rules="[ :rules="[
password.newOne === password.newTwo || 'Password must match', password.newOne === password.newTwo || $t('user.password-must-match'),
]" ]"
validate-on-blur validate-on-blur
:type="showPassword ? 'text' : 'password'" :type="showPassword ? 'text' : 'password'"