Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

CultureInfo.CurrentCulture (Propiedad)

Obtiene el objeto CultureInfo que representa la referencia cultural utilizada por el subproceso actual.

Espacio de nombres:  System.Globalization
Ensamblado:  mscorlib (en mscorlib.dll)

public static CultureInfo CurrentCulture { get; }

Valor de propiedad

Tipo: System.Globalization.CultureInfo
El objeto que representa la referencia cultural utilizada por el subproceso actual.

La referencia cultural es una propiedad del subproceso en ejecución. Esta propiedad de sólo lectura es equivalente a recuperar el objeto de CultureInfo devuelto por la propiedad de Thread.CurrentCulture . El objeto de CultureInfo devuelto por esta propiedad y sus objetos asociados determina el formato predeterminado de las fechas, horas, números, los valores de divisa, el criterio de ordenación de texto, las convenciones de combinación, y las comparaciones de cadenas.

Cómo se determina Culture de un subproceso

Cuando se inicia un subproceso, la referencia cultural se determina inicialmente como sigue:

  • Recuperar la referencia cultural especificada por la propiedad de DefaultThreadCurrentCulture en el dominio de aplicación en el que se está ejecutando el subproceso, si el valor de propiedad no es null.

  • Llamando a la función de Windows GetUserDefaultLocaleName .

Observe que si establece una referencia cultural concreta diferente de la referencia cultural sistema- instala o de la referencia cultural preferida del usuario, y la aplicación inicia varios subprocesos, la referencia cultural actual de estos subprocesos se la referencia cultural devuelta por la función de GetUserDefaultLocaleName , a menos que asigne una referencia cultural a la propiedad de DefaultThreadCurrentCulture en el dominio de aplicación en el que se está ejecutando el subproceso.

Para obtener más información sobre cómo la referencia cultural de un subproceso se determina, vea la sección “Culture y subprocesos” en la referencia de CultureInfo .

Configurar explícitamente la propiedad CurrentCulture

Para cambiar la referencia cultural utilizada por un subproceso existente, establezca la propiedad de Thread.CurrentCulture a la nueva referencia cultural. Si se cambia la referencia cultural de un subproceso de esta manera, ese cambio conserva si el subproceso cruza los límites del dominio de aplicación. El ejemplo siguiente se cambia la referencia cultural del subproceso actual a neerlandés (Países Bajos). También se muestra que, cuando el subproceso actual cruza los límites del dominio de aplicación, la referencia cultural actual debe cambiar.


using System;
using System.Globalization;
using System.Threading;

public class Info : MarshalByRefObject
{
   public void ShowCurrentCulture()
   {
      Console.WriteLine("Culture of {0} in application domain {1}: {2}",
                        Thread.CurrentThread.Name,
                        AppDomain.CurrentDomain.FriendlyName,
                        CultureInfo.CurrentCulture.Name);
   }
}

public class Example
{
   public static void Main()
   {
      Info inf = new Info();
      // Set the current culture to Dutch (Netherlands).
      Thread.CurrentThread.Name = "MainThread";
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-NL");
      inf.ShowCurrentCulture();

      // Create a new application domain.
       AppDomain ad = AppDomain.CreateDomain("Domain2");
       Info inf2 = (Info) ad.CreateInstanceAndUnwrap(typeof(Info).Assembly.FullName, "Info");
       inf2.ShowCurrentCulture();                       
   }
}
// The example displays the following output:
//       Culture of MainThread in application domain ChangeCulture1.exe: nl-NL
//       Culture of MainThread in application domain Domain2: nl-NL


NotaNota

Cambiar la referencia cultural mediante la propiedad de Thread.CurrentThread requiere un permiso de SecurityPermission con el valor de 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 puede cambiar la referencia cultural del subproceso en código semi- confirmado.

A partir de .NET Framework 4, puede explícitamente cambiar la referencia cultural del subproceso actual a una referencia cultural concreta (como francés (Canadá)) o una referencia cultural neutra (como francés). Cuando un objeto de CultureInfo representa una referencia cultural neutra, los valores de las propiedades de CultureInfo como Calendar, CompareInfo, DateTimeFormat, NumberFormat, y TextInfo reflejan la referencia cultural que está asociado a la referencia cultural neutra. Por ejemplo, la referencia cultural dominante para la referencia cultural neutra inglesa es inglés (Estados Unidos); la referencia cultural dominante para la referencia cultural alemán es alemán (Alemania). El ejemplo siguiente muestra la diferencia en el formato cuando el subproceso actual se establece en una referencia cultural concreta, en francés (Canadá), y a una referencia cultural neutra, francés.


using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      double value = 1634.92;
      Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
      Console.WriteLine("Current Culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("{0:C2}\n", value);

      Thread.CurrentThread.CurrentCulture = new CultureInfo("fr");
      Console.WriteLine("Current Culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("{0:C2}", value);
   }
}
// The example displays the following output:
//       Current Culture: fr-CA
//       1 634,92 $
//       
//       Current Culture: fr
//       1 634,92 €


También puede utilizar la propiedad de Thread.CurrentCulture junto con la propiedad de HttpRequest.UserLanguages para establecer la propiedad de CurrentCulture de una aplicación ASP.NET a la referencia cultural preferida del usuario, como se muestra en el ejemplo siguiente.


Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);


La referencia cultural actual y el usuario reemplaza

Windows permite que los usuarios reemplazan los valores de propiedad estándar del objeto de CultureInfo y sus objetos asociados mediante Opciones de configuración regional e idioma en Panel de control. El objeto de CultureInfo devuelto por la propiedad de CurrentCulture refleja usuario reemplaza en los casos siguientes:

  • Si la referencia cultural del subproceso actual se establece implícitamente por la función de Windows GetUserDefaultLocaleName .

  • Si la referencia cultural del subproceso actual definida por la propiedad de DefaultThreadCurrentCulture corresponde a la referencia cultural actual del sistema de Windows.

  • Si la referencia cultural del subproceso actual se establece explícitamente en una referencia cultural devuelta por el método de CreateSpecificCulture , y esa referencia cultural corresponde a la referencia cultural actual del sistema de Windows.

  • Si la referencia cultural del subproceso actual se establece explícitamente en una referencia cultural crear instancias del constructor de CultureInfo(String) , y esa referencia cultural corresponde a la referencia cultural actual del sistema de Windows.

En algunos casos, especialmente para las aplicaciones de servidor, establecer la referencia cultural actual a un objeto de CultureInfo que refleje el usuario reemplaza puede no ser deseable. En su lugar, puede establecer la referencia cultural del subproceso actual en un objeto de CultureInfo que no refleje el usuario reemplazar de las maneras siguientes:

En el ejemplo de código siguiente se muestra la forma de cambiar las propiedades CurrentCulture y CurrentUICulture del subproceso actual.


using System;
using System.Globalization;
using System.Security.Permissions;
using System.Threading;

[assembly:SecurityPermission( SecurityAction.RequestMinimum, ControlThread = true )]
public class SamplesCultureInfo  {

   public static void Main()  {

      // Displays the name of the CurrentCulture of the current thread.
      Console.WriteLine( "CurrentCulture is {0}.", CultureInfo.CurrentCulture.Name );

      // Changes the CurrentCulture of the current thread to th-TH.
      Thread.CurrentThread.CurrentCulture = new CultureInfo( "th-TH", false );
      Console.WriteLine( "CurrentCulture is now {0}.", CultureInfo.CurrentCulture.Name );

      // Displays the name of the CurrentUICulture of the current thread.
      Console.WriteLine( "CurrentUICulture is {0}.", CultureInfo.CurrentUICulture.Name );

      // Changes the CurrentUICulture of the current thread to ja-JP.
      Thread.CurrentThread.CurrentUICulture = new CultureInfo( "ja-JP", false );
      Console.WriteLine( "CurrentUICulture is now {0}.", CultureInfo.CurrentUICulture.Name );

   }

}

/*
This code produces the following output, if the ControlThread permission is granted (for example, if this code is run from the local drive).

CurrentCulture is en-US.
CurrentCulture is now th-TH.
CurrentUICulture is en-US.
CurrentUICulture is now ja-JP.

*/


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft