Événement
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Par Hisham Bin Ateya
Cet article fournit des instructions sur la façon de diagnostiquer les problèmes de localisation des applications ASP.NET Core.
Ordre de l’Intergiciel (middleware) de localisation
Il est possible que la localisation de l’application ne s’effectue pas car le middleware de localisation ne respecte pas l’ordre prévu.
Pour résoudre ce problème, vérifiez que le middleware de localisation est inscrit avant le middleware MVC. Sinon, le middleware de localisation n’est pas appliqué.
public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc();
}
Le chemin des ressources de localisation est introuvable
Les cultures prises en charge dans RequestCultureProvider ne correspondent pas à celles inscrites
ASP.NET Core a des règles et des instructions prédéfinies concernant l’attribution de nom des fichiers de ressources de localisation. Elles sont décrites dans Globalisation et localisation dans ASP.NET Core.
Les causes courantes de ressources introuvables sont notamment les suivantes :
.resx
) ou la requête de localisateur.Debug
) pour obtenir plus d’informations sur les ressources manquantes.Conseil
Lors de l’utilisation de CookieRequestCultureProvider, vérifiez que des guillemets simples ne sont pas utilisés avec les cultures à l’intérieur de la valeur de cookie de localisation. Par exemple, c='en-UK'|uic='en-US'
est une valeur de cookie non valide, alors que c=en-UK|uic=en-US
est valide.
ASP.NET Core fournit par défaut un moyen de permettre aux bibliothèques de classes de rechercher leurs fichiers de ressources par le biais de ResourceLocationAttribute.
Les problèmes courants liés aux bibliothèques de classes sont les suivants :
La classe RequestLocalizationOptions possède trois fournisseurs par défaut :
CustomRequestCultureProvider vous permet de personnaliser la façon dont la culture de localisation est fournie. CustomRequestCultureProvider est utilisé quand les fournisseurs par défaut ne répondent pas à vos besoins.
Une raison courante pour laquelle un fournisseur personnalisé ne fonctionne pas correctement est qu’il n’est pas le premier fournisseur dans la liste RequestCultureProviders. Pour résoudre ce problème :
Insérez le fournisseur personnalisé à la position zéro dans la liste RequestCultureProviders :
options.AddInitialRequestCultureProvider(
new CustomRequestCultureProvider(async context =>
{
// My custom request culture logic
return new ProviderCultureResult("en");
}));
Insérez le fournisseur personnalisé à la position zéro dans la liste RequestCultureProviders :
options.RequestCultureProviders.Insert(0,
new CustomRequestCultureProvider(async context =>
{
// My custom request culture logic
return new ProviderCultureResult("en");
}));
Si l’espace de noms racine d’un assembly est différent du nom de l’assembly, la localisation ne fonctionne pas par défaut. Pour éviter ce problème, utilisez l’attribut RootNamespace
qui est décrit dans Globalisation et localisation dans ASP.NET Core.
Avertissement
Un problème d’espace de noms racine peut se produire quand le nom d’un projet n’est pas un identificateur .NET valide. Par exemple, my-project-name.csproj
utilise l’espace de noms racine my_project_name
et le nom d’assembly my-project-name
, ce qui entraîne cette erreur.
Si vous utilisez des fichiers de ressources pour la localisation, il est important qu’ils disposent d’une action de génération appropriée. Utilisez une Ressource incorporée, sans quoi ResourceStringLocalizer
n’est pas en mesure de trouver ces ressources.
Lorsque vous utilisez le remplacement de localisation en tirant parti du volet Capteurs dans les outils de développement Google Chrome ou Microsoft Edge, le langage de secours est réinitialisé après le prérendu. Évitez de définir le langage en utilisant le volet Capteurs lors de tests. Définissez le langage en tirant parti des paramètres de langage du navigateur.
Pour obtenir plus d’informations, consultez Blazor La localisation ne fonctionne pas avec InteractiveServer (dotnet/aspnetcore
#53707).
Commentaires sur ASP.NET Core
ASP.NET Core est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événement
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusFormation
Module
Créer des applications web accessibles en utilisant ASP.NET Core - Training
Diagnostiquez et corrigez des problèmes courants d’accessibilité web dans une application ASP.NET Core.
Documentation
Rendre localisable le contenu d’une application ASP.NET Core
Découvrez comment rendre localisable le contenu d’une application ASP.NET Core pour préparer l’application à la localisation du contenu dans différentes langues et cultures.
Globalisation et localisation dans ASP.NET Core
Découvrez les services et intergiciels (middleware) fournis par ASP.NET Core pour localiser du contenu dans différentes langues et cultures.
Configurer la localisation d’objets portables dans ASP.NET Core
Cet article présente les fichiers d’objets portables et décrit les étapes à suivre pour les utiliser dans une application ASP.NET Core avec le framework Orchard Core.