Aller au contenu principal

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.

  1. Créer le dossier Models. Sous le dossier Resources, créez un dossier Models.
  2. Créer le dossier Auth. Sous le dossier Resources/Models, créez un dossier Auth.
  3. Fichier ressource. Sous le dossier Resources/Models/Auth nouvellement créé, ajoutez un fichier resource via Clic droit -> Add -> Resources (.resx)
  4. Nommez le fichier ConnexionViewModel (il contiendra les messages propres au ViewModel d'inscription)
attention

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.

Snowfall.Web.Mvc/Models/Auth/ConnexionViewModel.cs
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é.

img

info

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.

level up