Utilizar la propiedad CurrentCulture
Actualización: noviembre 2007
La propiedad CurrentCulture representa la información de la referencia cultural actual para cada subproceso. Esta información determina los formatos predeterminados para la fecha, hora, moneda y números, el criterio de ordenación de texto, las comparaciones de cadenas y la distinción entre mayúsculas y minúsculas. El valor se que se configura mediante esta propiedad no es una configuración de idioma. La propiedad sólo contiene los datos relativos a la configuración estándar para una región geográfica. Por consiguiente, su aplicación sólo puede establecer CurrentCulture en una referencia cultural determinada o en InvariantCulture. La aplicación puede utilizar la propiedad CurrentThread para establecer CurrentCulture.
Nota: |
---|
Para cambiar la referencia cultural de CurrentThread es necesario un objeto SecurityPermission que tenga establecido ControlThread. Es peligroso manipular subprocesos por el estado de seguridad asociado a los mismos. Por lo tanto, este permiso debería darse sólo a código confiable, y aun así sólo cuando sea necesario. No se puede cambiar la referencia cultural de un subproceso en un código de confianza parcial. |
Configurar explícitamente la propiedad CurrentCulture
Su aplicación puede establecer explícitamente la propiedad CurrentCulture. En el ejemplo de código siguiente se establece la referencia cultural específica Alemán (Alemania) designada como "de-DE".
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
La aplicación debe utilizar una referencia cultural específica para inicializar la propiedad CurrentCulture. La propiedad espera encontrar una referencia cultural asociada con un idioma y un país o región, por ejemplo, inglés (Estados Unidos), designada como "en-US". Debido a que a menudo un idioma se habla en más de un país o región, se necesita la información regional para determinar las convenciones de formato apropiadas que deben utilizarse. Por ejemplo, si la aplicación especifica la referencia cultural "en" para inglés neutro, no hay una única configuración correcta para el formato de fecha o moneda. La fecha podría tener el formato de Estados Unidos o del Reino Unido. La moneda podría tener el formato de Nueva Zelanda o de Canadá. Si la aplicación intenta establecer la propiedad CurrentCulture especificando una referencia cultural neutra, se producirá una excepción.
Si sólo tiene acceso a una referencia cultural neutra, la aplicación puede crear un objeto CultureInfo con el formato que la propiedad CurrentCulture espera encontrar, mediante el método CreateSpecificCulture. Este método asigna una referencia cultural neutra a la referencia cultural específica predeterminada con la que está asociada y, a continuación, crea un objeto CultureInfo que representa esa referencia cultural específica. El ejemplo de código siguiente utiliza el método CreateSpecificCulture para asignar la referencia cultural neutra Alemán ("de") a la referencia cultural específica Alemán (Alemania), designada como "de DE". A continuación, crea un objeto CultureInfo para "de-DE" y lo utiliza para inicializar el valor de la propiedad CurrentCulture.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
Nota: |
---|
Este método es opcional. Si la asignación que proporciona no es apropiada para la aplicación, ésta puede utilizar su propia asignación. |
Configurar explícitamente la propiedad CurrentCulture en una página .aspx
El método CreateSpecificCulture también permite a la aplicación utilizar el idioma actual del explorador web para inicializar la propiedad CurrentCulture en una página .aspx. En el ejemplo de código siguiente, la propiedad UserLanguages recupera el idioma actual del explorador web en forma de cadena. El método CreateSpecificCulture analiza esta cadena y devuelve un objeto CultureInfo en el formato que se puede utilizar para inicializar el valor de la propiedad CurrentCulture.
' Sets the CurrentCulture property to the culture associated with the Web
' browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0])
// Sets the CurrentCulture property to the culture associated with the Web
// browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
Para obtener más información sobre cómo utilizar y recuperar recursos en aplicaciones de ASP.NET, vea Recursos de aplicaciones de ASP.NET.
Configurar implícitamente la propiedad CurrentCulture
En el sistema operativo Windows, la función GetUserDefaultLCID establece la propiedad CurrentCulture. El usuario puede cambiar la configuración de esta propiedad cambiando la referencia cultural del usuario mediante las opciones de configuración regional e idioma, o cambiando la configuración relacionada con la configuración regional del usuario, como los formatos de moneda, números, fecha y hora.
Si desea asegurarse de que la aplicación utiliza los formatos predeterminados de .NET Framework para moneda, números, fecha y hora de una referencia cultural específica, puede hacer que la aplicación invalide los valores predeterminados de la configuración regional del usuario. La aplicación debe crear un objeto CultureInfo mediante una sobrecarga del constructor que acepte un parámetro useUserOverride, y establecer este parámetro en false. Esta técnica hace que la configuración predeterminada del sistema operativo del usuario sea invalidada por la configuración predeterminada de .NET Framework. Al aplicar formato a la moneda de los países de la Unión Europea (UE) que operan en euros, se recomienda que la aplicación establezca el valor del parámetro useUserOverride en false para garantizar que se utilice el símbolo de moneda correcto. Para obtener más información, vea el subtema "Aplicar formato de moneda para los países de la zona del euro" en el tema Aplicar formato a datos numéricos para una referencia cultural específica.
Vea también
Conceptos
Aplicar formato a datos numéricos para una referencia cultural específica
Recursos de aplicaciones de ASP.NET