Я застрял с локализацией моего ядра asp.net 2.2. Приложение Razro Pages.
Я пытался ввести локализацию, используя LocalizationCultureCore для хранения файлов ресурсов в .json вместо .resx.
Выглядит работающим, когда я запускаю Webapp в первый раз - все метки локализованы, но если я обновляю локализацию (меняю язык) во время выполнения, используя cookie, введенный Localizer не обновляется ни в .htmlcs, ни в .cs OnPost методе., доставляя старые метки из предыдущего языка
Однако System.Globalization.CultureInfo.CurrentCulture.ToString () и System.Globalization.CultureInfo.CurrentUICulture.ToString () возвращают правильные значения после обновления.
Вмой файл Startup.cs имеет следующие (фрагменты):
public void ConfigureServices(IServiceCollection services)
{
//other stuff
services.Configure<RequestLocalizationOptions>(
opts =>
{
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("en-US"),
new CultureInfo("ru-RU"),
};
opts.DefaultRequestCulture = new RequestCulture("en-US");
// Formatting numbers, dates, etc.
opts.SupportedCultures = supportedCultures;
// UI strings that we have localized.
opts.SupportedUICultures = supportedCultures;
});
services.AddJsonLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc().AddViewLocalization(options => { options.ResourcesPath = "Resources"; })
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
//other stuff
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//other stuff
var options = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(options.Value);
//other stuff
}
в методе OnPost файла index.cs (вызывается, когда пользователь выбирает другой язык в раскрывающемся списке)
public IActionResult OnPost(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
return LocalRedirect(returnUrl);
}
Что может быть не так?Есть ли способ обновить Localizer?