Я не могу понять, как работать с Локализацией на веб-сайте 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
.
Я что-то упускаю для локализации?