Ich fange gerade an, eine ASP.Net MVC-Anwendung zu lokalisieren. Die meisten Zeichenfolgen werden in Ressourcendateien definiert und über Matt's Localization Helpers abgerufen. Andere Zeichenfolgen müssen in einer Datenbank gespeichert werden.ASP.NET MVC: wann Thread.CurrentThread.CurrentUICulture festlegen?
Meine Frage: Sollte ich CurrentUICulture
früh in der Anforderungspipeline und verwenden, die in der gesamten Anwendung oder direkt Request.UserLanguages[0]
verwenden, wenn nötig?
Gerade jetzt Ich denke, dass ich CurrentUICulture
in Application_BeginRequest setzen sollte. Die Umsetzung würde wie folgt aussehen:
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cultureName = HttpContext.Current.Request.UserLanguages[0];
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
}
Ist dies der beste Ort CurrentUICulture
zu setzen und ist Request.UserLanguages[0]
der beste Ort, dass Informationen zu bekommen?
Update:
Ariel's Post machte mir klar, dass dies ohne Code definiert werden können, unter Verwendung von web.config
<system.web>
<!--If enableClientBasedCulture is true, ASP.NET can set the UI culture and culture for a Web page automatically, based on the values that are sent by a browser.-->
<globalization enableClientBasedCulture="true" culture="auto:en-US" uiCulture="auto:en"/>
toller link! Vielen Dank. –
Ist diese Methode in der aktuellen Version von ASP.NET MVC noch gültig, wenn AsyncController ausgeführt wird? Weil sie technisch nicht unter demselben Thread laufen wie 'Thread.CurrentThread'. –
Nicht im Lieferumfang enthalten. Siehe http: // stackoverflow.com/questions/20601578/async-webapi-thread-currentculture –