Home :: Otros :: Productividad :: Manejando la Cultura en nuestras Aplicaciones
 
cultureinfo

Manejando la Cultura en nuestras Aplicaciones

jul 26, 2010 en Productividad por Victor Parasi

Sabias que puedes ejecutar tus aplicaciones en un idioma distinto al de tu Sistema Operativo, te dejo este post para que te enteres de que se trata.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Cuando me refiero al término Cultura dentro de una aplicación, me refiero entre otras cosas al sistema de escritura, formato de separación decimal, símbolo de la moneda, formato de las fechas; en fin, todo aquello que es propio de un idioma y que no es respetado, necesariamente, por los demás.

En esta oportunidad veremos, a partir de una aplicación Consola, como podemos acceder a la configuración regional y luego definir una para poder aplicarla dentro de nuestra aplicación, sin tener la necesidad de cambiar la de nuestro sistema operativo.

Comenzaremos diciendo que para poder utilizar las clases que indicaré, debes de asegurarte de tener referencia al siguiente namespace:

using System.Globalization;

Utilizar este namespace nos permite acceder, entre otras cosas, a la clase CultureInfo. Esta clase es la que nos va a permitir trabajar con la cultura actual y cambiarla dentro de nuestra aplicación.

Veamos como podemos acceder a la cultura actual de nuestra aplicación obtener sus principales características:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Namespace
using System.Globalization;

namespace CultureInfoConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //Obtenemos la Cultura Actual
            CultureInfo culturaactual = CultureInfo.CurrentCulture;
            //CultureInfo culturaactual=CultureInfo.CurrentCulture;
            //INFORMACION
            Console.WriteLine("CompareInfo: {0}", culturaactual.CompareInfo);
            Console.WriteLine("DisplayName : {0}", culturaactual.DisplayName);
            Console.WriteLine("EnglishName: {0}", culturaactual.EnglishName);
            Console.WriteLine("IsNeutralCulture: {0}", culturaactual.IsNeutralCulture);
            Console.WriteLine("IsReadOnly: {0}", culturaactual.IsReadOnly);
            Console.WriteLine("LCID: {0}", culturaactual.LCID);
            Console.WriteLine("Name: {0}", culturaactual.Name);
            Console.WriteLine("NativeName: {0}", culturaactual.NativeName);
            Console.WriteLine("Parent: {0}", culturaactual.Parent);
            Console.WriteLine("TextInfo: {0}", culturaactual.TextInfo);
            //MONEDA
            Console.WriteLine("CurrencySymbol: {0}", culturaactual.NumberFormat.CurrencySymbol);
            Console.WriteLine("CurrencyDecimalSeparator: {0}", culturaactual.NumberFormat.CurrencyDecimalSeparator);
            Console.WriteLine("CurrencyDecimalDigits: {0}", culturaactual.NumberFormat.CurrencyDecimalDigits);
            //FECHA y HORA
            Console.WriteLine("ShortDatePattern: {0}", culturaactual.DateTimeFormat.ShortDatePattern);
            Console.WriteLine("DateSeparator: {0}", culturaactual.DateTimeFormat.DateSeparator);
            Console.WriteLine("ShortTimePattern: {0}", culturaactual.DateTimeFormat.ShortTimePattern);
            Console.WriteLine("TimeSeparator: {0}", culturaactual.DateTimeFormat.TimeSeparator);

            Console.WriteLine("\nDias de la semana : ");
            foreach (string s in culturaactual.DateTimeFormat.DayNames)
            { Console.Write("{0} " ,s.ToUpper() ); }

            Console.WriteLine("\nMeses del año : ");
            //MESES DEL AÑO
            foreach (string s in culturaactual.DateTimeFormat.MonthNames )
            { Console.Write("{0} ",s.ToUpper()); }

             Console.ReadLine();

        }
    }
}

En el código anterior, como puedes apreciar, he obtenido la cultura de nuestra aplicación a través de: CultureInfo.CurrentCulture, y a partir de esto podemos acceder a la características propia de la cultura.

En mi caso, mi cultura por defecto es "en-US", pero esto no es impedimento para que pueda cambiarla dentro de mi aplicación, mira el siguiente ejemplo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Namespace
using System.Globalization;

namespace CultureInfoConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //Definimos una nueva cultura
            CultureInfo nuevacultura = new System.Globalization.CultureInfo("es-PE", false);
            //Asignamos la nueva cultura a nuestra aplicación
            System.Threading.Thread.CurrentThread.CurrentCulture = nuevacultura;
            //Obtenemos la Cultura Actual
            CultureInfo culturaactual = CultureInfo.CurrentCulture;
            //CultureInfo culturaactual=CultureInfo.CurrentCulture;
            //INFORMACION
            Console.WriteLine("CompareInfo: {0}", culturaactual.CompareInfo);
            Console.WriteLine("DisplayName : {0}", culturaactual.DisplayName);
            Console.WriteLine("EnglishName: {0}", culturaactual.EnglishName);
            Console.WriteLine("IsNeutralCulture: {0}", culturaactual.IsNeutralCulture);
            Console.WriteLine("IsReadOnly: {0}", culturaactual.IsReadOnly);
            Console.WriteLine("LCID: {0}", culturaactual.LCID);
            Console.WriteLine("Name: {0}", culturaactual.Name);
            Console.WriteLine("NativeName: {0}", culturaactual.NativeName);
            Console.WriteLine("Parent: {0}", culturaactual.Parent);
            Console.WriteLine("TextInfo: {0}", culturaactual.TextInfo);
            //MONEDA
            Console.WriteLine("CurrencySymbol: {0}", culturaactual.NumberFormat.CurrencySymbol);
            Console.WriteLine("CurrencyDecimalSeparator: {0}", culturaactual.NumberFormat.CurrencyDecimalSeparator);
            Console.WriteLine("CurrencyDecimalDigits: {0}", culturaactual.NumberFormat.CurrencyDecimalDigits);
            //FECHA y HORA
            Console.WriteLine("ShortDatePattern: {0}", culturaactual.DateTimeFormat.ShortDatePattern);
            Console.WriteLine("DateSeparator: {0}", culturaactual.DateTimeFormat.DateSeparator);
            Console.WriteLine("ShortTimePattern: {0}", culturaactual.DateTimeFormat.ShortTimePattern);
            Console.WriteLine("TimeSeparator: {0}", culturaactual.DateTimeFormat.TimeSeparator);
            Console.WriteLine("\nDias de la semana : ");
            foreach (string s in culturaactual.DateTimeFormat.DayNames)
            { Console.Write("{0} " ,s.ToUpper() ); }
            Console.WriteLine("\nMeses del año : ");
            //MESES DEL AÑO
            foreach (string s in culturaactual.DateTimeFormat.MonthNames )
            { Console.Write("{0} ",s.ToUpper()); }
            Console.ReadLine();

        }
    }
}

En la primera línea, dentro de Program, puedes apreciar que estoy definiendo una cultura "es-PE", español Perú, la cual la asigno como cultura actual de mi aplicación.

Hacer esto, entre otras cosas, me permite acceder a los nombres del día y mes en el idioma correcto y poder hacer algo con estas posteriormente.

Como puedes apreciar, manejar las culturas en nuestras aplicaciones, es bastante sencillo, permitiéndonos personalizar nuestra aplicación dependiendo del idioma que desees ejecutar. En un próximo post veremos como hacerlo con una aplicación Windows.


Autor: Victor Parasi

Siempre es difícil escribir sobre uno mismo, qué contar, o por donde empezar, suele ser todo un dilema al momento de presentarse. Aquí vamos. Les diré que soy peruano, Ingeniero por vocación, dedicado a la docencia y siempre en la búsqueda de programar cada vez mejor. Aunque a veces algo terco, sé que no todo en la vida es blanco o negro. Existe el Open Source, y lo respeto pero me llevo mejor con el .Net. Si me hablas de preferencias, te digo que C#, C++, una buena película, colores oscuros, escribir, leer e investigar. Para terminar les diré que amo muchísimo a una mujer espectacular y que es la dueña de mi corazón.


Comentarios (1)

Deja un comentario

   

copstone en Facebook

Otros artículos

Alguna vez te has preguntado si las aplicaciones web que realizas, o inclusive tus aplicaciones que utilizan un servicio web están seguras? En este artículo hablo acerca de algunos conceptos de seguridad que deberías tener en cuenta al momento de implementar aplicaciones web.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Un rewrite rule, es una regla de redireccionamiento. Estas reglas son muy útiles en los servidores web ya que te permiten manejar las peticiones de una forma distinta. Por ejemplo, puedes convertir la ruta http://localhost/prueba.php?u=admin en http://localhost/prueba/user/admin y ambas producirían el mismo resultado.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Quieres hacer un programa sin bordes para que le puedas dar el aspecto que deseas pero no sabes como hacer para que tu usuario pueda mover la ventana? En este artículo te enseño un truco muy fácil de agregar la funcionalidad de movimiento a cualquier lado del formulario no solo la barra de título.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Antes de comenzar a desarrollar aplicaciones web, es necesario que tengas un ambiente de prueba donde puedas experimentar antes de publicar tu contenido en la web. El primer paso fue Instalar un servidor web El segundo y tercer paso para crear el ambiente es instalar PHP y MySQL eso es lo que te mostraré en este artículo.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Un web service o servicio web es un estándar de comunicación por medio de documentos XML que permite comunicar aplicaciones que no necesariamente estén en el mismo lenguaje, sistema operativo o inclusive ubicación geográfica. Si quieres hacer un servicio web para que muchas aplicaciones puedan consultar tu información entonces un buen punto de partida es este artículo.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Calendario

julio 2010
L M X J V S D
« may   nov »
 1234
567891011
12131415161718
19202122232425
262728293031  

Categorías

Comparte este artículo

  • Facebook
  • Google Bookmarks
  • Google Gmail
  • Twitter
  • Yahoo Mail
  • Hotmail
  • LinkedIn
  • Share
TIENES ALGO QUE PREGUNTAR? ESCRÍBENOS AQUÍ

Copyright © 2012 - Programando por diversion

Subir