【发布时间】:2016-12-24 16:55:27
【问题描述】:
这是我的自定义请求文化提供程序,如果 url 中没有指定文化(例如 http://sypalo.com/ru 或 http://sypalo.com/en),它将返回“en”作为默认文化。 我的想法是以用户浏览器中默认的语言显示网站,所以我正在寻找一种方法来确定它并返回它而不是:return Task.FromResult(new ProviderCultureResult("en", "en"));
services.Configure<RequestLocalizationOptions>(options =>
{
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("en"),
new CultureInfo("ru")
};
options.DefaultRequestCulture = new RequestCulture(culture: "en", uiCulture: "en");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context =>
{
var pathSegments = context.Request.Path.Value.Split('/');
if (pathSegments.Count() > 0)
if (supportedCultures.Select(x => x.TwoLetterISOLanguageName).Contains((pathSegments[1])))
return Task.FromResult(new ProviderCultureResult(pathSegments[1], pathSegments[1]));
return Task.FromResult(new ProviderCultureResult("en", "en"));
}));
});
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-core