25-7 Fichiers ressources
Blazor ne supporte pas HtmlLocalizer et ViewLocalizer au niveau client, puisque ces derniers sont essentiellement des concepts liés à .NET Core MVC. On peut cependant utiliser IStringLocalizer.
Je présente comment utiliser les fichiers de ressource et vous devez les utiliser pour votre projet.
Cependant, dans la théorie, afin de simplifier les notes de cours et aussi pour rendre le contenu plus lisible, StringLocalizer sera peu utilisé.
Installer Microsoft.Extensions.Localization
- Clic droit sur le projet
Admin->Manage NuGet Packages - Cherchez
Microsoft.Extensions.Localization - Installez la dépendance
Ajouter le support pour la localisation
Au fichier Program.cs du projet client, ajoutez AddLocalization:
//...
// Localization
builder.Services.AddLocalization();
await builder.Build().RunAsync();
Créer les fichiers ressources
Dans le cas qui nous occupe, à titre d'exemple, j'ai créé deux fichiers de ressources:

Snowfall.Web.Admin/Resources/Evenements/Index.resxpour la pageIndexdes événementsSnowfall.Web.Admin/Resources/SharedResources.resxpour des ressources partagées
Il n'y a pas de structure particulière à respecter comme dans MVC où nous utilisions le ViewLocalizer pour trouver les références automatiquement. Ici, on fera référence directement aux fichiers.
Cependant, il est une bonne pratique de bien nommer les fichiers ressources afin de pouvoir s'y retrouver.
Utiliser StringLocalizer dans les composants
Finalement, on injecte le StringLocalizer dans les composants, avec comme type le fichier de ressources à utiliser.
On peut injecter plusieurs StringLocalizer dans la page si on doit référencer plusieurs fichiers ressources. Par exemple, dans la vue Index des événements, je fais référence ici à deux fichiers différents:
//...
@inject EvenementHttpClient EvenementHttpClient
@inject IStringLocalizer<Resources.Evenements.Index> Localizer;
@inject IStringLocalizer<SharedResources> LocalizerShared;
<NavLink href="/">@LocalizerShared["Retour"]</NavLink>
<h1>@Localizer["Titre"]</h1>
//...
