Maison > développement back-end > Tutoriel C#.Net > Introduction détaillée à la prise en charge multilingue dans ASP.NET Core

Introduction détaillée à la prise en charge multilingue dans ASP.NET Core

巴扎黑
Libérer: 2017-09-01 14:23:12
original
1444 Les gens l'ont consulté

Cet article présente principalement le support multilingue (localisation) dans ASP.NET Core, qui a une certaine valeur de référence. Ceux qui sont intéressés peuvent en apprendre davantage

Ajoutez d'abord AddLocalization et AddViewLocalization dans ConfigureServices de Startup. Et configurez RequestLocalizationOptions (en supposant que l'anglais et le chinois soient utilisés ici) :


public void ConfigureServices(IServiceCollection services)
{
  services.AddLocalization(options => options.ResourcesPath = "Resources");

  services.AddMvc()
    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);

  services.Configure<RequestLocalizationOptions>(
    opts =>
    {
      var supportedCultures = new List<CultureInfo>
      {
        new CultureInfo("en-US"),
        new CultureInfo("zh-CN")
      };
      opts.SupportedCultures = supportedCultures;
      opts.SupportedUICultures = supportedCultures;
    });
}
Copier après la connexion

Appliquer RequestLocalizationOptions dans la méthode Configure() de démarrage :


var requestLocalizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>().Value;
app.UseRequestLocalization(requestLocalizationOptions);
Copier après la connexion

Affichez ensuite le suffixe du titre de la page de manière multilingue via l'interface IViewLocalizer dans la vue _Layout.cshtml :


@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
<!DOCTYPE html>
<html>
<head>
  <title>@ViewData["Title"] - @Localizer["SiteTitle"]</title>
</head>
<body>
</body>
</html>
Copier après la connexion

Créez ensuite le dossier Resources dans le projet Web ASP.NET Core et ajoutez les fichiers Views.Shared._Layout.en-Us.resx et Views.Shared._Layout.zh-CN.resx, ainsi que les Views.Shared ._Layout.resx respectivement et ajoutez le texte de déclaration correspondant à "SiteTitle":

1) Views.Shared._Layout.en-Us.resx

2) Vues. Shared._Layout.zh-CN.resx

Lors de l'exécution du site ASP.NET Core, il sera basé sur le paramètre de langue du navigateur ( En-tête Accept-Language), ou les paramètres de requête de culture, ou la valeur du cookie .AspNetCore.Culture affiche le texte dans la langue correspondante :

Choses à noter : n'ajoutez jamais autre chose que Views.Shared._Layout.en-Us.resx avec le nom de la langue, sinon lors de l'ajout d'un fichier .resx avec le nom de la langue du code, vous rencontrerez "L'outil personnalisé ResXFileCodeGenerator n'a pas réussi à produire une sortie pour le fichier d'entrée ... mais n'a pas enregistré d'erreur spécifique." demandé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal