如何为 ASP.NET 5 应用程序设置语言环境?
How do I set the locale for an ASP.NET 5 application?
我正在尝试全面覆盖 ASP.NET 5 网络应用程序的主机语言环境。大多数解决方案都引用 <globalization/>
web.config 元素,但这是特定于 IIS 的,似乎不适合新的 ASP.NET 模型。
我试过了:
app.Use(next => context => {
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-AU");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
return next(context);
});
这被执行了,但这似乎对请求没有任何影响(可能是由于管道中的大量 Task
ing?)有没有更好的方法来完成这个?
尚未为 ASP.NET 5
准备好本地化,但您可以查看 Damian Edwards's github
上的内容
更新 2015 年 7 月 21 日星期二
★
本地化将在 beta6
。 See de the roadmap
更新 2015 年 12 月 27 日
本地化现已可用,我们在 aspnet/Localization
中有示例
问题出在异步控制器上。您应该将默认区域性设置为所有线程:
app.Use(next => context => {
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
return next(context);
});
您实际上可以将这些行放在 Configure 方法的顶部:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
我正在尝试全面覆盖 ASP.NET 5 网络应用程序的主机语言环境。大多数解决方案都引用 <globalization/>
web.config 元素,但这是特定于 IIS 的,似乎不适合新的 ASP.NET 模型。
我试过了:
app.Use(next => context => {
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-AU");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
return next(context);
});
这被执行了,但这似乎对请求没有任何影响(可能是由于管道中的大量 Task
ing?)有没有更好的方法来完成这个?
尚未为 ASP.NET 5
准备好本地化,但您可以查看 Damian Edwards's github
更新 2015 年 7 月 21 日星期二
★
本地化将在 beta6
。 See de the roadmap
更新 2015 年 12 月 27 日
本地化现已可用,我们在 aspnet/Localization
中有示例问题出在异步控制器上。您应该将默认区域性设置为所有线程:
app.Use(next => context => {
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
return next(context);
});
您实际上可以将这些行放在 Configure 方法的顶部:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");