asp.net-mvc - 在 Asp.Net Core 中启用基于客户端的文化

标签 asp.net-mvc localization asp.net-core asp.net-core-mvc

在 MVC 6 默认情况下,CultureInfo.CurrentCulture是 windows 使用的,而不是浏览器使用的。

在 MVC 5 中,我可以把它放在 web.config :

<globalization culture="auto" uiCulture="auto"/>

这将使 CultureInfo.CurrentCulture与浏览器指定的相同(Accept-Language header )。

有没有办法将 MVC 6 应用程序配置为默认使用浏览器文化?

最佳答案

您需要安装 Microsoft.AspNet.Localization NuGet 包并将以下内容添加到您的 Startup.cs :

public void Configure(IApplicationBuilder app)
{
    app.UseRequestLocalization();
    app.UseMvc();
}

默认情况下,它注册 AcceptLanguageHeaderRequestCultureProvider作为文化提供者,这应该等同于遗产enableClientBasedCulture环境。

更新:

根据您的评论,由于您使用的是 RC1 版本,因此您必须为该方法提供默认区域性。例如:
app.UseRequestLocalization(new RequestCulture("en"));

关于asp.net-mvc - 在 Asp.Net Core 中启用基于客户端的文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590969/

相关文章:

c# - 例如,如何将 DbSet 变成下拉列表?

node.js - 查询 MongoDB 中的本地化数据

iis - 如何将 WebDeploy 与 ASP.Net core 结合使用

c# - ASP.NET 核心 3.1 |如何使用服务集合进行单元测试并使用 NullLogger 作为 ILogger 实现

c# - ASP.net MVC : Create MVC 5 Application using EF6 with Code First and Existing Database

asp.net-mvc - ASP.NET MVC 路由失败。这是错误还是极端情况?

android - 更改 SwitchPreference 的语言

c# - Azure 部署因生成错误而失败

.net - 如何以编程方式启动 ASP.NET MVC 应用程序并与之交互?

node.js - 在 node.js 中使用 express 进行本地化