0
ASP.NET Core 1では発生しなかった奇妙な問題に遭遇しました。何らかの理由でIndex.es.cshtml
を使用するとビューが正しく検出されますが、Localizer["Home"]
Index.cshtml
翻訳されません。言語ごとのビューを複製することは本当に理想的ではありません。ビューはローカライズされていますがリソースが見つかりません
public void ConfigureServices(IServiceCollection services)
{
var supportedCultures = new[] { new CultureInfo("en"), new CultureInfo("es") };
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.Configure<RequestLocalizationOptions>(options =>
{
options.DefaultRequestCulture = new RequestCulture("en");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix, options => options.ResourcesPath = "Resources")
.AddDataAnnotationsLocalization();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseRequestLocalization();
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
}
閲覧パス:
~/Views/Home/Index.cshtml
リソースのパスは:文化を正しくes
に設定されているので
~/Resources/Views/Home/Index.es.resx
Home => Inicio
だから、私はこれが動作することを期待したい:
@inject IViewLocalizer Localizer
@{
ViewData["Title"] = Localizer["Home"];
}