Estoy empezando a localizar una aplicación ASP.Net MVC. La mayoría de las cadenas se definirán en los archivos de recursos y se recuperarán a través del Matt's Localization Helpers. Otras cadenas se deben almacenar en una base de datos.ASP.NET MVC: ¿Cuándo configurar Thread.CurrentThread.CurrentUICulture?
Mi Pregunta: ¿Debo establecer CurrentUICulture
temprano en la canalización de solicitud y el uso que en toda la aplicación, o utilizar directamente Request.UserLanguages[0]
cuando sea necesario?
En este momento Estoy pensando que debo configurar CurrentUICulture
en Application_BeginRequest. La implementación sería algo como esto:
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cultureName = HttpContext.Current.Request.UserLanguages[0];
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
}
Es este el mejor lugar para establecer CurrentUICulture
y es Request.UserLanguages[0]
el mejor lugar para obtener esa información?
Actualización:
Ariel's después me di cuenta de que esto puede ser definido sin código, usando 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"/>
great link! Gracias. –
¿Este método sigue siendo válido con la llegada de AsyncController en la versión más reciente de ASP.NET MVC? Debido a que técnicamente podrían no funcionar bajo el mismo hilo que 'Thread.CurrentThread'. –
No fuera de la caja. Ver http: // stackoverflow.com/questions/20601578/async-webapi-thread-currentculture –