Here is my custom request culture provider which returns \"en\" as a default culture if no culture specified in url (for example http://sypalo.com/ru or http://sypalo.com/en). M
You can get Accept-Language
header from the current Request
and set default language. Your code should be something like this:
services.Configure(options =>
{
//...
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context =>
{
//...
var userLangs = context.Request.Headers["Accept-Language"].ToString();
var firstLang = userLangs.Split(',').FirstOrDefault();
var defaultLang = string.IsNullOrEmpty(firstLang) ? "en" : firstLang;
return Task.FromResult(new ProviderCultureResult(defaultLang, defaultLang));
}));
});