17-3 I18n et validations
Les messages de validation sont codés en dur directement dans les ViewModel
. Un peu à l'image des vues qui utilisent les fichiers ressources, les ViewModel
peuvent eux aussi faire référence à ces derniers pour les messages de validation.
Pour contenir les messages de validation de ConnexionViewModel
, on créera ainsi un fichier ressource spécifiquement pour ce dernier.
- Créer le dossier
Models
. Sous le dossierResources
, créez un dossierModels
. - Créer le dossier
Auth
. Sous le dossierResources/Models
, créez un dossierAuth
. - Fichier ressource. Sous le dossier
Resources/Models/Auth
nouvellement créé, ajoutez un fichier resource viaClic droit
->Add
->Resources (.resx)
- Nommez le fichier
ConnexionViewModel
(il contiendra les messages propres au ViewModel d'inscription)
Le nom du fichier et le chemin d'accès vers ce dernier sont importants! Il doit correspondre au chemin d'accès du fichier concerné et porter le même nom que la classe.
Ici, on voudra mettre des messages propres à ConnexionViewModel
qui se trouve sous Models/Auth
, d'où le nom de fichier ConnexionViewModel.resx
sous le dossier Snowfall.Web.Mvc/Resources/Models/Auth
.
Utilisation d'identifiants dans le ViewModel
Dans le ViewModel, plutôt que d'utiliser des messages d'erreur directement, nous allons utiliser des identifiants (clé).
Ces clés/identifiants feront référence à des entrées dans le fichier ressource.
public class ConnexionViewModel
{
[Required(ErrorMessage = "Email_Required")]
[EmailAddress(ErrorMessage = "Email_Invalid")]
[Display(Name = "Courriel", Prompt = "Courriel")]
public string? Email { get; set; }
[Required(ErrorMessage = "Password_Required")]
[StringLength(16, MinimumLength = 8, ErrorMessage = "Password_Length")]
[DataType(DataType.Password)]
[Display(Name = "Mot de passe", Prompt = "Mot de passe")]
public string? Password { get; set; }
}
Édition du fichier ressource
Éditez le fichier ressource pour qu'il ressemble à ceci. Pour éditer le fichier, simplement double cliquer dessus pour ouvrir la vue Designer
.
Vous pouvez utiliser le +
pour ajouter une nouvelle clé.
On vient simplement associer les clés mentionnées dans le fichier aux clés correspondantes dans le ViewModel
(ErrorMessage
).
Le framework s'occupera de faire le lien pour vous! Pour ce faire, l'emplacement du fichier ressource et son nom sont très importants, c'est de cette façon que l'association automatique se fait.
Lancer le projet
Lancez le projet, rendez-vous au formulaire d'inscription et les messages de validation devraient toujours être fonctionnels alors qu'ils sont maintenant centralisés dans un fichier ressource.