Laravel: Traduire les Messages de Validation dans Auth pour des Applications Multilingues

Le module Auth de Laravel est un outil extrêmement utile pour gérer l’authentification dans les applications web. Lorsqu’il est combiné avec Laravel UI, il offre une solution efficace pour créer des vues par défaut, ce qui est particulièrement pratique pour les développeurs travaillant sur plusieurs projets et souhaitant éviter de répéter le même travail de conception à chaque fois.

Un défi courant se présente lorsque nous traitons la localisation dans ces projets. Bien que les vues soient souvent traduites en JSON, les messages de validation côté serveur restent parfois dans leur langue d’origine, généralement l’anglais. Un exemple typique est le message d’erreur affiché lorsqu’un utilisateur dépasse le nombre de tentatives de connexion autorisées. Ce message, bien qu’il soit une partie cruciale de l’expérience utilisateur, n’est pas automatiquement traduit.

Pour identifier et traduire ces messages, une approche efficace consiste à utiliser une combinaison de commandes Linux find et grep. Par exemple, pour localiser le fichier contenant le message spécifique ‘Please wait before retrying.’, la commande suivante peut être utilisée :

				
					find . -name '*.php' | grep -r 'Please wait before retrying.'

				
			

Cette commande recherche dans tous les fichiers PHP et affiche ceux qui contiennent la chaîne spécifiée. Dans le cas de Laravel Auth, le fichier responsable est généralement situé dans :

				
					./vendor/laravel/framework/src/Illuminate/Translation/lang/en/passwords.php


				
			

Ce fichier contient la chaîne en anglais : ‘throttled’ => ‘Please wait before retrying.’,

Pour traduire ce message en français, vous devez d’abord créer ou modifier le fichier passwords.php dans le répertoire resources/lang/fr. Ce fichier doit contenir un tableau associatif des chaînes traduites. Voici un exemple de code pour ce fichier :

				
					<?php

return [

    /*
    Lignes de traduction pour la réinitialisation du mot de passe
    */

    'reset' => 'Votre mot de passe a été réinitialisé.',
    'sent' => 'Nous avons envoyé par email votre lien de réinitialisation du mot de passe. TOTO',
    'throttled' => 'Veuillez attendre avant de réessayer.',
    'token' => 'Ce jeton de réinitialisation de mot de passe est invalide.',
    'user' => "Nous ne trouvons pas d'utilisateur avec cette adresse email.",

];


				
			

En ajoutant cette traduction, vous assurez une expérience utilisateur cohérente et localisée pour les applications Laravel que vous développez. Cela illustre l’importance de la localisation dans le développement web et la facilité avec laquelle Laravel permet de gérer ces aspects.

Partager l'article

Autres articles