How do I set the locale for an ASP.NET 5 application?

北战南征 提交于 2020-01-13 16:27:54

问题


I’m trying to do a blanket override of the host locale for an ASP.NET 5 web application. Most solutions refer to the <globalization/> web.config element, but this is IIS-specific and doesn't seem to fit the new ASP.NET model.

I tried:

app.Use(next => context => {
    Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-AU");
    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-AU");
    return next(context);
});

This gets executed, but this doesn’t seem to have any effect on the request (maybe due to the extensive Tasking in the pipeline?) Is there a better way to accomplish this?


回答1:


The issue is with the async controller. You should set the default culture to all threads instead:

app.Use(next => context => {
    CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
    CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");

    return next(context);
});

You can actually just put these lines at the top of the Configure method:

CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-AU");
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.GetCultureInfo("en-AU");



回答2:


Localization is not yet ready for ASP.NET 5 but you can take a look of what it could be on the Damian Edwards's github

UPDATE Tuesday, ‎July ‎21, ‎2015
‎ Localization will be in beta6. See de the roadmap

UPDATE Dec. 27th, ‎2015

Localization is now available and we have sample in aspnet/Localization



来源:https://stackoverflow.com/questions/28981973/how-do-i-set-the-locale-for-an-asp-net-5-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!