В ASP.Net Ядра, У меня есть следующие настройки в документации по созданию культуры в применении:Отключить использование по умолчанию заголовок Accept-Language в ASP.Net Ядра
var supportedCultures = new[]
{
new CultureInfo("en-CA"),
new CultureInfo("fr-CA"),
new CultureInfo("fr"),
new CultureInfo("en"),
new CultureInfo("en-US"),
};
var defaultRequestCulture = Configuration["Settings:Culture:DefaultRequestCulture"];
if (defaultRequestCulture == null)
{
defaultRequestCulture = "en-CA";
}
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(defaultRequestCulture),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
Я добавил Settings:Culture:DefaultRequestCulture
в файл appsettings.json
, поэтому его можно настроить на основе установки на каждом сайте.
This documentation указывает, что заказ может быть изменен, но, к сожалению, не приводится пример того, как это сделать.
Это указывает на то, что эти три поставщика по умолчанию используются:
- QueryStringRequestCultureProvider
- CookieRequestCultureProvider
- AcceptLanguageHeaderRequestCultureProvider
Я не могу понять, как отключить третий. Я хочу, чтобы остальные оставались как есть, но для приложения полностью игнорировать HTTP-заголовок.
Спасибо! Первый подход работал для меня при условии, что 'Startup.cs' имел зависимость System.Linq' using System.Linq; '. Я предпочел второй для краткого характера, но интерфейс IRequestCultureProvider не был доступен, и я не мог отследить зависимость для этого. –
'IRequestCultureProvider' является частью пакета' Microsoft.AspNetCore.Localization' и находится в пространстве имен с тем же именем – Tseng