ASP.NET globalización: Culture = directiva de página “auto” con choque cultural neutra?

StackOverflow https://stackoverflow.com/questions/1314627

Pregunta

Estoy corriendo en un caso en el que una aplicación ASP.NET utilizando el incorporado en las instalaciones de la globalización está fallando.

En una página ASP.NET con la cultura directiva = "auto", un usuario con una cultura neutra como su idioma del navegador (por ejemplo "zh-Hans") producirá la siguiente excepción:

  

Cultura 'zh-Hans' es una referencia cultural neutra. No se puede utilizar en   formateo y análisis y por lo tanto   No se puede establecer como actual del hilo   cultura.

     

a System.Globalization.CultureInfo.CheckNeutral (CultureInfo   cultura)   en System.Threading.Thread.set_CurrentCulture (CultureInfo   valor)   en System.Web.UI.Page.set_Culture (String   valor)   en ASP.somePage_aspx .__ BuildControlTree (somePage_aspx __ctrl)   en ASP.somePage_aspx.FrameworkInitialize ()

¿Alguna idea? Garbage alimentado en los parámetros de cultivo / UICulture generalmente parecen ser ignorada, pero este caso está causando una excepción no controlada.

¿Fue útil?

Solución

En primer lugar, es posible considerar el establecimiento de UICulture = "auto", así como Cultura = "auto" en su <% @% de página> declaración.

Ahora, no estoy viendo esta repro en mi .NET 4.0 (beta) instalar, por lo que este podría ser un error de producto en .NET 3.5.

Aquí hay un gran recurso para aprender sobre las culturas neutrales y la diferencia entre UICulture y Cultura: http://blogs.msdn.com/ddietric/archive/2008/02/05/yacvcp-yet-another-currentculture-vs-currentuiculture- post.aspx

Espero que sea útil.

Otros consejos

Yo estaba teniendo el mismo problema y después de bonking la cabeza contra una pared durante un tiempo encontré la respuesta delante de mis narices.

El problema que tuve fue en no entender la diferencia entre CurrentCulture y CurrentUICulture . La diferencia es CurrentCulture se utiliza para formatear fechas, números y realizar la clasificación, CurrentUICulture se utiliza para buscar cadenas específicas de la cultura de un recurso.

Yo tenía algo de código que se parecía a

return input.ToString("C", System.Globalization.CultureInfo.CurrentUICulture);

cuando debería ser sido

return input.ToString("C", System.Globalization.CultureInfo.CurrentCulture);

Cuando empezar a tratar de temas específicos de cultivo formato con una cultura no específica obtendrá el System.NotSupportedException.

No se puede establecer que la cultura de iniciar la solicitud? (Nota:. Solicitudes ASP.NET puede saltar entre las discusiones por lo que necesita para enganchar en la rosca se mueve también)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top