Как реализовать локализацию ASP net CORE MVC - PullRequest
0 голосов
/ 30 мая 2018

Я не могу понять, как работать с Локализацией на веб-сайте ASP.NET Core MVC: я слежу за этим веб-сайтом, но я думаю, что что-то забыл:

Запуск:

 public void ConfigureServices(IServiceCollection services)
        {
        services.AddMvc(
                config =>
                {
                    config.Filters.Add<ActionFilter>();
                })
                .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
                .AddDataAnnotationsLocalization();

        services.Configure<RequestLocalizationOptions>(option =>
            {
                var supportedCultures = new[]
                {
                    new CultureInfo("en"),
                    new CultureInfo("fr"),
                };
                option.DefaultRequestCulture = new RequestCulture(culture: "fr", uiCulture: "fr");
                option.SupportedCultures = supportedCultures;
                option.SupportedUICultures = supportedCultures;
            });
        }

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
        var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
            app.UseRequestLocalization(locOptions.Value);

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

HomeController:

    public class HomeController : Controller
    {

    private readonly IStringLocalizer<HomeController> _localizer;

            public HomeController(IStringLocalizer<HomeController> localizer)
                {
                    _localizer = localizer;
                }
    public IActionResult Index()
            {
                return View()
            }
}

Index.cshtml

@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer

@{
    ViewData["Title"] = Localizer["Home"];
}

<h1>News</h1>
<h2>@Localizer["Home"]</h2>

И у меня естьResources Folder с файлом HomeController.fr.resx внутри, где определено отношение Home => Accueil.

Функция Request.HttpContext.Features.Get<IRequestCultureFeature>().RequestCulture.Culture.Name return fr, но на странице всегда отображается Home вместо Accueil.

Я что-то упускаю для локализации?

1 Ответ

0 голосов
/ 30 мая 2018

Я наконец понимаю, почему это не работает, я просто забываю добавить Localization.AspNetCore.TagHelpers NugetPackage.

...