Maison > développement back-end > Tutoriel C#.Net > Explication graphique et textuelle détaillée de la prise en charge multilingue dans ASP.NET Core

Explication graphique et textuelle détaillée de la prise en charge multilingue dans ASP.NET Core

黄舟
Libérer: 2017-09-05 15:14:35
original
2361 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 Views.Shared._Layout.en-Us.resx avec le nom de la langue, sinon 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é de données spécifiques lors de l'ajout d'un .resx fichier avec une erreur de nom de langage de code. » 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