Sam*_*Sam 3 c# asp.net locale asp.net-core
我正在尝试对ASP.NET 5 Web应用程序的主机区域设置进行全面覆盖.大多数解决方案都引用<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);
});
Run Code Online (Sandbox Code Playgroud)
这会被执行,但这似乎对请求没有任何影响(可能是由于Task
管道中的大量内容?)有没有更好的方法来实现这一点?
问题出在异步控制器上.您应该将默认文化设置为所有线程:
app.Use(next => context => {
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
return next(context);
});
Run Code Online (Sandbox Code Playgroud)
实际上,您可以将这些行放在Configure方法的顶部:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
Run Code Online (Sandbox Code Playgroud)
本地化还没有准备好,ASP.NET 5
但是你可以看看Damian Edwards的github上的内容
更新 2015年7月21日,星期二
本地化将在beta6
.请参阅路线图
更新 2015年12月27日
现在可以进行本地化,我们在aspnet/Localization中有样本
归档时间: |
|
查看次数: |
3177 次 |
最近记录: |