É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.
Note
Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 9 de cet article.
Avertissement
Cette version d’ASP.NET Core n’est plus prise en charge. Pour plus d’informations, consultez la stratégie de support .NET et .NET Core. Pour la version actuelle, consultez la version .NET 9 de cet article.
Important
Ces informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Pour la version actuelle, consultez la version .NET 9 de cet article.
Par Hisham Bin Ateya
Cet article :
Les API de localisation ASP.NET Core sont conçues pour être extensibles. L’extensibilité permet aux développeurs de personnaliser la localisation en fonction de leurs besoins. Par exemple, OrchardCore a un POStringLocalizer
. POStringLocalizer
décrit en détail l’utilisation de la Localisation d’objet portable pour utiliser des fichiers PO
afin de stocker des ressources de localisation.
Cet article répertorie les deux principaux points d’extensibilité fournis par les API de localisation :
Les API de localisation ASP.NET Core incluent quatre fournisseurs par défaut qui peuvent déterminer la culture actuelle d’une requête d’exécution :
Les fournisseurs précédents sont décrits en détail dans la documentation de l’intergiciel de localisation. Si les fournisseurs par défaut ne répondent pas à vos besoins, créez un fournisseur personnalisé à l’aide de l’une des approches suivantes :
CustomRequestCultureProvider fournit un RequestCultureProvider personnalisé qui utilise un délégué simple pour déterminer la culture de localisation actuelle :
options.AddInitialRequestCultureProvider(new CustomRequestCultureProvider(async context =>
{
var currentCulture = "en";
var segments = context.Request.Path.Value.Split(new char[] { '/' },
StringSplitOptions.RemoveEmptyEntries);
if (segments.Length > 1 && segments[0].Length == 2)
{
currentCulture = segments[0];
}
var requestCulture = new ProviderCultureResult(currentCulture);
return Task.FromResult(requestCulture);
}));
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(async context =>
{
var currentCulture = "en";
var segments = context.Request.Path.Value.Split(new char[] { '/' },
StringSplitOptions.RemoveEmptyEntries);
if (segments.Length > 1 && segments[0].Length == 2)
{
currentCulture = segments[0];
}
var requestCulture = new ProviderCultureResult(currentCulture);
return Task.FromResult(requestCulture);
}));
Une nouvelle implémentation de RequestCultureProvider peut être créée pour déterminer les informations de culture de requête à partir d’une source personnalisée. Par exemple, la source personnalisée peut être un fichier de configuration ou une base de données.
L’exemple suivant montre AppSettingsRequestCultureProvider
, qui étend le RequestCultureProvider pour déterminer les informations de culture de requête à partir de appsettings.json
:
public class AppSettingsRequestCultureProvider : RequestCultureProvider
{
public string CultureKey { get; set; } = "culture";
public string UICultureKey { get; set; } = "ui-culture";
public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
{
if (httpContext == null)
{
throw new ArgumentNullException();
}
var configuration = httpContext.RequestServices.GetService<IConfigurationRoot>();
var culture = configuration[CultureKey];
var uiCulture = configuration[UICultureKey];
if (culture == null && uiCulture == null)
{
return Task.FromResult((ProviderCultureResult)null);
}
if (culture != null && uiCulture == null)
{
uiCulture = culture;
}
if (culture == null && uiCulture != null)
{
culture = uiCulture;
}
var providerResultCulture = new ProviderCultureResult(culture, uiCulture);
return Task.FromResult(providerResultCulture);
}
}
La localisation ASP.NET Core fournit ResourceManagerStringLocalizer. ResourceManagerStringLocalizer est une implémentation de IStringLocalizer qui utilise resx
pour stocker des ressources de localisation.
Vous n’êtes pas limité à l’utilisation de fichiers resx
. En implémentant IStringLocalizer
, n’importe quelle source de données peut être utilisée.
Les exemples de projets suivants implémentent IStringLocalizer :
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 plus