.net - Disable default use of Accept-Language header in ASP.Net Core -
in asp.net core, have following setup per documentation on establishing culture in application:
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 });
i've added settings:culture:defaultrequestculture
appsettings.json
file can configured on per site installation basis.
this documentation indicates order can changed, unfortunately doesn't provide example on how it.
it indicates these 3 providers used default:
- querystringrequestcultureprovider
- cookierequestcultureprovider
- acceptlanguageheaderrequestcultureprovider
i cannot figure out how disable third. want other ones remain is, application disregard http header entirely.
just you'd remove item ilist<t>
.
var localizationoptions = new requestlocalizationoptions { supportedcultures = ..., supporteduicultures = ..., defaultrequestculture = new requestculture("en-us") }; var requestprovider = localizationoptions.requestcultureproviders.oftype<acceptlanguageheaderrequestcultureprovider>().first(); localizationoptions.requestcultureproviders.remove(requestprovider);
or
var localizationoptions = new requestlocalizationoptions { supportedcultures = ..., supporteduicultures = ..., defaultrequestculture = new requestculture("en-us"), requestcultureproviders = new list<irequestcultureprovider> { // order important, in order evaluated new querystringrequestcultureprovider(), new cookierequestcultureprovider() }; };
Comments
Post a Comment