Globalización.

Como ya te expliqué en el tema anterior, la globalización son las acciones relacionadas con el desarrollo de aplicaciones que se adapten a culturas diferentes. No es suficiente con localizar la aplicación para diferentes idiomas, porque que en función de cada idioma algunas expresiones cambian en su composición. Por ejemplo, en español el formato habitual de fecha es 'dd/mm/aaaa', mientras que en inglés es 'yyyy/mm/dd'; así pues, sería incorrecta una presentación en inglés de una fecha cualquiera como 15/08/1975, y debemos preparar a la aplicación para que muestre 1975/08/15.

La manera más sencilla de solucionar lo anterior es usar la propiedad 'Thread.CurrentThread.CurrentCulture' para la asignación un valor de cultura específico. Por ejemplo, y siguiendo sobre el ejemplo del tema anterior, a la hora de establecer el idioma con los botones deberíamos añadir lo siguiente para cada idioma.

Para el español:

Culture.ModifiedCulture = "es-ES";
Resources.MergedDictionaries.Add(Culture.SetLanguage());
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("es-ES");

Para el inglés:

Culture.ModifiedCulture = "en-GB";
Resources.MergedDictionaries.Add(Culture.SetLanguage());
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-GB");

Ahora estaremos prevenidos ante visualizaciones incorrectas según en qué idiomas en los usos de los métodos 'ToUpper()' y 'ToLower()' de la clase 'String', el formato de fechas al que me refería antes, el uso de ',' o '.' como separador de decimales, y otro tipo de usos de diferentes clases y métodos.