.net Core Set Ui Culture

5 min read Jun 03, 2024
.net Core Set Ui Culture

Définir la culture de l'interface utilisateur dans ASP.NET Core

ASP.NET Core offre une grande flexibilité pour personnaliser l'expérience utilisateur en fonction de la culture de l'utilisateur. La culture de l'interface utilisateur détermine la langue, le format des dates, des heures et des nombres utilisés dans l'application. Cet article vous guidera sur la façon de définir la culture de l'interface utilisateur dans votre application ASP.NET Core.

Définir la culture de l'interface utilisateur par défaut

Vous pouvez définir la culture par défaut de l'application en utilisant la méthode ConfigureAppConfiguration dans la classe Startup.

public void ConfigureAppConfiguration(IConfigurationBuilder builder)
{
    builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
           .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true, reloadOnChange: true)
           .AddEnvironmentVariables();

    // Définir la culture par défaut
    builder.AddConfiguration(new ConfigurationBuilder()
        .AddInMemoryCollection(new Dictionary
        {
            { "culture:default", "fr-FR" }
        }));
}

Dans cet exemple, nous définissons la culture par défaut à fr-FR. Vous pouvez remplacer fr-FR par la culture que vous souhaitez utiliser.

Définir la culture de l'interface utilisateur par requête

Vous pouvez également définir la culture de l'interface utilisateur pour chaque requête en utilisant le middleware RequestLocalizationMiddleware. Ce middleware vous permet de lire la culture de la requête à partir de l'en-tête Accept-Language, de l'URL ou d'un cookie.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...

    // Configuration de la localisation de la requête
    app.UseRequestLocalization(options =>
    {
        // Liste des cultures supportées
        options.SupportedCultures = new[] { "fr-FR", "en-US" };
        options.SupportedUICultures = new[] { "fr-FR", "en-US" };

        // Définir la culture par défaut
        options.DefaultRequestCulture = new RequestCulture("fr-FR");

        // Stratégies pour déterminer la culture
        options.AddQueryString("culture"); // Utiliser le paramètre 'culture' dans l'URL
        options.AddCookie("culture"); // Utiliser le cookie 'culture'
        options.AddHeader("Accept-Language"); // Utiliser l'en-tête 'Accept-Language'
    });

    // ...
}

Ce code configure le middleware RequestLocalizationMiddleware pour utiliser les cultures fr-FR et en-US. Il définit également fr-FR comme culture par défaut et utilise plusieurs stratégies pour déterminer la culture de la requête.

Définir la culture de l'interface utilisateur dans les vues

Une fois que la culture de l'interface utilisateur est définie, vous pouvez l'utiliser dans vos vues pour afficher les informations localisées. Vous pouvez utiliser la propriété CultureInfo.CurrentUICulture pour obtenir la culture de l'interface utilisateur actuelle.

@using System.Globalization

Bienvenue sur notre site web

La date actuelle est : @DateTime.Now.ToString("D", CultureInfo.CurrentUICulture)

Ce code affiche la date actuelle dans le format approprié pour la culture de l'interface utilisateur actuelle.

Conclusion

Définir la culture de l'interface utilisateur dans ASP.NET Core vous permet de créer des applications qui s'adaptent à l'utilisateur final et offrent une expérience personnalisée. En utilisant les méthodes décrites dans cet article, vous pouvez facilement gérer la localisation de votre application ASP.NET Core et offrir une expérience utilisateur optimale à vos utilisateurs.

Related Post