Я хочу настроить локализацию в моем ASP.NET Core 2.1. Я создаю объект RequestLocalizationOptions с 6 поддерживаемыми культурами и настраиваю службы, но при извлечении этих параметров (объект localizationOptions в примере кода ниже) коллекции SupportedCultures и SupportedUICultures содержат только одну культуру.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<RequestLocalizationOptions>(opts => BuildLocalizationOptions());
services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; });
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder)
.AddJsonOptions(opts => opts.SerializerSettings.ContractResolver = new DefaultContractResolver());
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
var localizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(localizationOptions.Value);
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
private RequestLocalizationOptions BuildLocalizationOptions()
{
IList<CultureInfo> supportedCultures = new List<CultureInfo>
{
new CultureInfo("en-US"),
new CultureInfo("en"),
new CultureInfo("fr-FR"),
new CultureInfo("fr"),
new CultureInfo("ro-RO"),
new CultureInfo("ro")
};
var options = new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US", "en-US"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
};
return options;
}
Буду признателен за любую помощь, может быть, я что-то упустил.
ОБНОВЛЕНИЕ: Извините, забыл включить метод BuildLocalizationOptions ().