Implement extensive localization improvements across forms and components

- Refactored `it.json` translations with added keys for authentication, admin panel, and settings.
- Updated authentication forms (`LoginForm`, `RegisterForm`, `PasswordResetConfirmForm`) to use localized strings via `next-intl`.
- Enhanced password validation schemas with dynamic translations and refined error messages.
- Adjusted `Header` and related components to include localized navigation and status elements.
- Improved placeholder hints, button labels, and inline validation messages for seamless localization.
This commit is contained in:
Felipe Cardoso
2025-11-19 03:02:13 +01:00
parent 333c9c40af
commit 7aa63d79df
9 changed files with 421 additions and 214 deletions

View File

@@ -25,11 +25,14 @@
"dashboard": "Dashboard",
"settings": "Settings",
"profile": "Profile",
"logout": "Logout",
"logout": "Log out",
"loggingOut": "Logging out...",
"login": "Login",
"register": "Register",
"demos": "Demos",
"design": "Design System"
"design": "Design System",
"admin": "Admin",
"adminPanel": "Admin Panel"
},
"auth": {
"login": {
@@ -41,11 +44,13 @@
"passwordPlaceholder": "Enter your password",
"rememberMe": "Remember me",
"forgotPassword": "Forgot password?",
"loginButton": "Sign In",
"loginButton": "Sign in",
"loginButtonLoading": "Signing in...",
"noAccount": "Don't have an account?",
"registerLink": "Sign up",
"success": "Successfully logged in",
"error": "Invalid email or password"
"error": "Invalid email or password",
"unexpectedError": "An unexpected error occurred. Please try again."
},
"register": {
"title": "Create an account",
@@ -53,63 +58,142 @@
"firstNameLabel": "First Name",
"firstNamePlaceholder": "John",
"lastNameLabel": "Last Name",
"lastNamePlaceholder": "Doe",
"lastNamePlaceholder": "Doe (optional)",
"emailLabel": "Email",
"emailPlaceholder": "name@example.com",
"emailPlaceholder": "you@example.com",
"passwordLabel": "Password",
"passwordPlaceholder": "Create a strong password",
"confirmPasswordLabel": "Confirm Password",
"confirmPasswordPlaceholder": "Re-enter your password",
"confirmPasswordPlaceholder": "Confirm your password",
"phoneLabel": "Phone Number",
"phonePlaceholder": "+1 (555) 000-0000",
"registerButton": "Create Account",
"registerButton": "Create account",
"registerButtonLoading": "Creating account...",
"hasAccount": "Already have an account?",
"loginLink": "Sign in",
"success": "Account created successfully",
"error": "Failed to create account"
"error": "Failed to create account",
"unexpectedError": "An unexpected error occurred. Please try again.",
"passwordRequirements": {
"minLength": "At least 8 characters",
"hasNumber": "Contains a number",
"hasUppercase": "Contains an uppercase letter"
},
"required": "*",
"firstNameRequired": "First name is required",
"firstNameMinLength": "First name must be at least 2 characters",
"firstNameMaxLength": "First name must not exceed 50 characters",
"lastNameMaxLength": "Last name must not exceed 50 characters",
"passwordRequired": "Password is required",
"passwordMinLength": "Password must be at least 8 characters",
"passwordNumber": "Password must contain at least one number",
"passwordUppercase": "Password must contain at least one uppercase letter",
"confirmPasswordRequired": "Please confirm your password",
"passwordMismatch": "Passwords do not match"
},
"passwordReset": {
"title": "Reset your password",
"subtitle": "Enter your email address and we'll send you a reset link",
"instructions": "Enter your email address and we'll send you instructions to reset your password.",
"emailLabel": "Email",
"emailPlaceholder": "name@example.com",
"sendButton": "Send Reset Link",
"emailPlaceholder": "you@example.com",
"sendButton": "Send Reset Instructions",
"sendButtonLoading": "Sending...",
"backToLogin": "Back to login",
"success": "Password reset link sent to your email",
"error": "Failed to send reset link"
"rememberPassword": "Remember your password?",
"success": "Password reset instructions have been sent to your email address. Please check your inbox.",
"error": "Failed to send reset link",
"unexpectedError": "An unexpected error occurred. Please try again.",
"required": "*"
},
"passwordChange": {
"title": "Change Password",
"currentPasswordLabel": "Current Password",
"newPasswordLabel": "New Password",
"newPasswordPlaceholder": "Enter new password",
"confirmPasswordLabel": "Confirm New Password",
"confirmPasswordPlaceholder": "Re-enter new password",
"changeButton": "Change Password",
"success": "Password changed successfully",
"error": "Failed to change password"
},
"passwordResetConfirm": {
"title": "Reset Password",
"instructions": "Enter your new password below. Make sure it meets all security requirements.",
"newPasswordLabel": "New Password",
"newPasswordPlaceholder": "Enter new password",
"confirmPasswordLabel": "Confirm Password",
"confirmPasswordPlaceholder": "Re-enter new password",
"resetButton": "Reset Password",
"resetButtonLoading": "Resetting Password...",
"rememberPassword": "Remember your password?",
"backToLogin": "Back to login",
"success": "Your password has been successfully reset. You can now log in with your new password.",
"unexpectedError": "An unexpected error occurred. Please try again.",
"required": "*",
"tokenRequired": "Reset token is required",
"passwordRequired": "New password is required",
"passwordMinLength": "Password must be at least 8 characters",
"passwordNumber": "Password must contain at least one number",
"passwordUppercase": "Password must contain at least one uppercase letter",
"confirmPasswordRequired": "Please confirm your password",
"passwordMismatch": "Passwords do not match",
"passwordRequirements": {
"minLength": "At least 8 characters",
"hasNumber": "Contains a number",
"hasUppercase": "Contains an uppercase letter"
}
}
},
"settings": {
"title": "Settings",
"profile": {
"title": "Profile",
"subtitle": "Manage your profile information",
"title": "Profile Information",
"subtitle": "Update your personal information. Your email address is read-only.",
"firstNameLabel": "First Name",
"firstNamePlaceholder": "John",
"lastNameLabel": "Last Name",
"lastNamePlaceholder": "Doe",
"emailLabel": "Email",
"emailDescription": "Your email address cannot be changed from this form",
"phoneLabel": "Phone Number",
"updateButton": "Update Profile",
"updateButton": "Save Changes",
"updateButtonLoading": "Saving...",
"resetButton": "Reset",
"success": "Profile updated successfully",
"error": "Failed to update profile"
"error": "Failed to update profile",
"unexpectedError": "An unexpected error occurred. Please try again.",
"firstNameRequired": "First name is required",
"firstNameMinLength": "First name must be at least 2 characters",
"firstNameMaxLength": "First name must not exceed 50 characters",
"lastNameMaxLength": "Last name must not exceed 50 characters",
"emailInvalid": "Invalid email address"
},
"password": {
"title": "Password",
"subtitle": "Change your account password",
"title": "Change Password",
"subtitle": "Update your password to keep your account secure. Make sure it's strong and unique.",
"currentPasswordLabel": "Current Password",
"currentPasswordPlaceholder": "Enter your current password",
"newPasswordLabel": "New Password",
"newPasswordPlaceholder": "Enter your new password",
"newPasswordDescription": "At least 8 characters with uppercase, lowercase, number, and special character",
"confirmPasswordLabel": "Confirm New Password",
"updateButton": "Update Password",
"confirmPasswordPlaceholder": "Confirm your new password",
"updateButton": "Change Password",
"updateButtonLoading": "Changing Password...",
"cancelButton": "Cancel",
"success": "Password updated successfully",
"error": "Failed to update password"
"error": "Failed to update password",
"unexpectedError": "An unexpected error occurred. Please try again.",
"currentPasswordRequired": "Current password is required",
"newPasswordRequired": "New password is required",
"newPasswordMinLength": "Password must be at least 8 characters",
"newPasswordNumber": "Password must contain at least one number",
"newPasswordUppercase": "Password must contain at least one uppercase letter",
"newPasswordLowercase": "Password must contain at least one lowercase letter",
"newPasswordSpecial": "Password must contain at least one special character",
"confirmPasswordRequired": "Please confirm your new password",
"passwordMismatch": "Passwords do not match"
},
"sessions": {
"title": "Sessions",

View File

@@ -26,10 +26,13 @@
"settings": "Impostazioni",
"profile": "Profilo",
"logout": "Disconnetti",
"loggingOut": "Disconnessione...",
"login": "Accedi",
"register": "Registrati",
"demos": "Demo",
"design": "Design System"
"design": "Design System",
"admin": "Admin",
"adminPanel": "Pannello Admin"
},
"auth": {
"login": {
@@ -42,10 +45,12 @@
"rememberMe": "Ricordami",
"forgotPassword": "Password dimenticata?",
"loginButton": "Accedi",
"loginButtonLoading": "Accesso in corso...",
"noAccount": "Non hai un account?",
"registerLink": "Registrati",
"success": "Accesso effettuato con successo",
"error": "Email o password non validi"
"error": "Email o password non validi",
"unexpectedError": "Si è verificato un errore imprevisto. Riprova."
},
"register": {
"title": "Crea un account",
@@ -53,63 +58,142 @@
"firstNameLabel": "Nome",
"firstNamePlaceholder": "Mario",
"lastNameLabel": "Cognome",
"lastNamePlaceholder": "Rossi",
"lastNamePlaceholder": "Rossi (facoltativo)",
"emailLabel": "Email",
"emailPlaceholder": "nome@esempio.com",
"passwordLabel": "Password",
"passwordPlaceholder": "Crea una password sicura",
"confirmPasswordLabel": "Conferma Password",
"confirmPasswordPlaceholder": "Reinserisci la tua password",
"confirmPasswordPlaceholder": "Conferma la tua password",
"phoneLabel": "Numero di Telefono",
"phonePlaceholder": "+39 123 456 7890",
"registerButton": "Crea Account",
"registerButton": "Crea account",
"registerButtonLoading": "Creazione account...",
"hasAccount": "Hai già un account?",
"loginLink": "Accedi",
"success": "Account creato con successo",
"error": "Impossibile creare l'account"
"error": "Impossibile creare l'account",
"unexpectedError": "Si è verificato un errore imprevisto. Riprova.",
"passwordRequirements": {
"minLength": "Almeno 8 caratteri",
"hasNumber": "Contiene un numero",
"hasUppercase": "Contiene una lettera maiuscola"
},
"required": "*",
"firstNameRequired": "Il nome è obbligatorio",
"firstNameMinLength": "Il nome deve essere di almeno 2 caratteri",
"firstNameMaxLength": "Il nome non deve superare i 50 caratteri",
"lastNameMaxLength": "Il cognome non deve superare i 50 caratteri",
"passwordRequired": "La password è obbligatoria",
"passwordMinLength": "La password deve essere di almeno 8 caratteri",
"passwordNumber": "La password deve contenere almeno un numero",
"passwordUppercase": "La password deve contenere almeno una lettera maiuscola",
"confirmPasswordRequired": "Conferma la tua password",
"passwordMismatch": "Le password non corrispondono"
},
"passwordReset": {
"title": "Reimposta la tua password",
"subtitle": "Inserisci il tuo indirizzo email e ti invieremo un link per reimpostare la password",
"instructions": "Inserisci il tuo indirizzo email e ti invieremo le istruzioni per reimpostare la password.",
"emailLabel": "Email",
"emailPlaceholder": "nome@esempio.com",
"sendButton": "Invia Link di Reset",
"sendButton": "Invia Istruzioni di Reset",
"sendButtonLoading": "Invio in corso...",
"backToLogin": "Torna al login",
"success": "Link di reset password inviato alla tua email",
"error": "Impossibile inviare il link di reset"
"rememberPassword": "Ricordi la tua password?",
"success": "Le istruzioni per il reset della password sono state inviate al tuo indirizzo email. Controlla la tua casella di posta.",
"error": "Impossibile inviare il link di reset",
"unexpectedError": "Si è verificato un errore imprevisto. Riprova.",
"required": "*"
},
"passwordChange": {
"title": "Cambia Password",
"currentPasswordLabel": "Password Attuale",
"newPasswordLabel": "Nuova Password",
"newPasswordPlaceholder": "Inserisci nuova password",
"confirmPasswordLabel": "Conferma Nuova Password",
"confirmPasswordPlaceholder": "Reinserisci nuova password",
"changeButton": "Cambia Password",
"success": "Password cambiata con successo",
"error": "Impossibile cambiare la password"
},
"passwordResetConfirm": {
"title": "Reimposta Password",
"instructions": "Inserisci la tua nuova password qui sotto. Assicurati che soddisfi tutti i requisiti di sicurezza.",
"newPasswordLabel": "Nuova Password",
"newPasswordPlaceholder": "Inserisci nuova password",
"confirmPasswordLabel": "Conferma Password",
"confirmPasswordPlaceholder": "Reinserisci nuova password",
"resetButton": "Reimposta Password",
"resetButtonLoading": "Reimpostazione Password...",
"rememberPassword": "Ricordi la tua password?",
"backToLogin": "Torna al login",
"success": "La tua password è stata reimpostata con successo. Ora puoi accedere con la tua nuova password.",
"unexpectedError": "Si è verificato un errore imprevisto. Riprova.",
"required": "*",
"tokenRequired": "Token di reset è obbligatorio",
"passwordRequired": "La nuova password è obbligatoria",
"passwordMinLength": "La password deve essere di almeno 8 caratteri",
"passwordNumber": "La password deve contenere almeno un numero",
"passwordUppercase": "La password deve contenere almeno una lettera maiuscola",
"confirmPasswordRequired": "Conferma la tua password",
"passwordMismatch": "Le password non corrispondono",
"passwordRequirements": {
"minLength": "Almeno 8 caratteri",
"hasNumber": "Contiene un numero",
"hasUppercase": "Contiene una lettera maiuscola"
}
}
},
"settings": {
"title": "Impostazioni",
"profile": {
"title": "Profilo",
"subtitle": "Gestisci le informazioni del tuo profilo",
"title": "Informazioni Profilo",
"subtitle": "Aggiorna le tue informazioni personali. Il tuo indirizzo email è di sola lettura.",
"firstNameLabel": "Nome",
"firstNamePlaceholder": "Mario",
"lastNameLabel": "Cognome",
"lastNamePlaceholder": "Rossi",
"emailLabel": "Email",
"emailDescription": "Il tuo indirizzo email non può essere modificato da questo modulo",
"phoneLabel": "Numero di Telefono",
"updateButton": "Aggiorna Profilo",
"updateButton": "Salva Modifiche",
"updateButtonLoading": "Salvataggio...",
"resetButton": "Ripristina",
"success": "Profilo aggiornato con successo",
"error": "Impossibile aggiornare il profilo"
"error": "Impossibile aggiornare il profilo",
"unexpectedError": "Si è verificato un errore imprevisto. Riprova.",
"firstNameRequired": "Il nome è obbligatorio",
"firstNameMinLength": "Il nome deve essere di almeno 2 caratteri",
"firstNameMaxLength": "Il nome non deve superare i 50 caratteri",
"lastNameMaxLength": "Il cognome non deve superare i 50 caratteri",
"emailInvalid": "Indirizzo email non valido"
},
"password": {
"title": "Password",
"subtitle": "Cambia la password del tuo account",
"title": "Cambia Password",
"subtitle": "Aggiorna la tua password per mantenere il tuo account sicuro. Assicurati che sia forte e univoca.",
"currentPasswordLabel": "Password Attuale",
"currentPasswordPlaceholder": "Inserisci la tua password attuale",
"newPasswordLabel": "Nuova Password",
"newPasswordPlaceholder": "Inserisci la tua nuova password",
"newPasswordDescription": "Almeno 8 caratteri con maiuscole, minuscole, numeri e caratteri speciali",
"confirmPasswordLabel": "Conferma Nuova Password",
"updateButton": "Aggiorna Password",
"confirmPasswordPlaceholder": "Conferma la tua nuova password",
"updateButton": "Cambia Password",
"updateButtonLoading": "Cambio Password...",
"cancelButton": "Annulla",
"success": "Password aggiornata con successo",
"error": "Impossibile aggiornare la password"
"error": "Impossibile aggiornare la password",
"unexpectedError": "Si è verificato un errore imprevisto. Riprova.",
"currentPasswordRequired": "La password attuale è obbligatoria",
"newPasswordRequired": "La nuova password è obbligatoria",
"newPasswordMinLength": "La password deve essere di almeno 8 caratteri",
"newPasswordNumber": "La password deve contenere almeno un numero",
"newPasswordUppercase": "La password deve contenere almeno una lettera maiuscola",
"newPasswordLowercase": "La password deve contenere almeno una lettera minuscola",
"newPasswordSpecial": "La password deve contenere almeno un carattere speciale",
"confirmPasswordRequired": "Conferma la tua nuova password",
"passwordMismatch": "Le password non corrispondono"
},
"sessions": {
"title": "Sessioni",