jueves, 21 de julio de 2016

Globalización y Localización en C#

Índice

1. Introducción
2. Palabras Clave
3. Internacionalización
3.1 Globalización
3.1.1 Generalidades
3.1.2 Lista de verificación
3.1.3 Validación de la cultura
3.2 Localización
4. Conclusiones
5. Literatura & Enlaces

1. Introducción

Una aplicación que tiene alto impacto en número de usuarios tiende a trascender límites culturales. Esto requiere que el programador escriba código que adapte la aplicación a distintas configuraciones regionales y culturales. .NET Framework cuenta con los mecanismos apropiados para facilitar las tareas que comprometen la internacionalización de una aplicación: globalización y localización. Este artículo C# describe los fundamentos a comprender para la escritura de una aplicación de esta categoría.

2. Palabras Clave

  • Assembly satélite
  • Cultura
  • Globalización
  • Internacionalización
  • Localización
  • Región
  • Satellite assembly

3. Internacionalización

Para internacionalizar una aplicación el programador debe llevar a cabo dos tareas básicas:
  • Globalización, y 
  • Localización

3.1 Globalización

3.1.1 Generalidades

La globalización de una aplicación está relacionada con la implementación de las siguientes tareas (Albahari, 2012): 
  1. Aseguramiento de la continuación en la estabilidad de la aplicación cuando ésta se ejecuta sobre una configuración regional y cultural distinta a la que fue desarrollada.
  2. Conservación y respeto de las reglas de formato de una cultura cualquiera; por ejemplo en la presentación de fechas, valores de moneda.
  3. Uso de assemblies satélite -un satellite assembly es un assembly que contiene la configuración los recursos específicos para un idioma dado- para adaptar la aplicación de acuerdo a lengua de una cultura específica.
[Nota: Estas tareas están ordenadas de mayor a menor prioridad; esto quiere decir que el programador debe preocuparse por alcanzar los objetivos en este orden dado durante el desarrollo de la aplicación.]

3.1.2 Lista de verificación

En el artículo Cadenas de Caracteres y Manipulación de Texto en C#/5: Char se describen varios de los aspectos importantes en la manipulación valores literales. Aún así, aquí se resumen las tareas a llevar a cabo durante el proceso de globalización (Albahari, 2012): 
  • Comprensión del sistema Unicode y codificación de texto (Cadenas de Caracteres y Manipulación de Texto en C#/5: Sistemas de Codificación de Texto y Unicode).
  • Distinguir entre la funcionalidad que ofrece los métodos ToUpper, ToLower, ToUpperInvariant y ToLowerInvariant en objetos string y char.
  • Dar prioridad a los mecanismos de formato y conversión/parseo independientes de la cultura.
  • Optar por el formato y conversión dependiente cuando el comportamiento de la aplicación está orientado estrictamente a una cultura específica.

3.1.3 Validación de la cultura

Para validar o probar que la configuración regional y cultural son aptas para un escenario concreto, el programador puede usar la propiedad Thread.CurrentThread.CurrentCulture para la asignación un valor de cultura específico.

Para ejemplificarlo, esta línea de código C# resulta útil: 

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("tr-TR");

Se ha usado la cadena "tr-TR" para referirse a la configuración cultural turca; esto es así porque resulta apropiada como prueba; así: 

Console.WriteLine("i".ToUpper() != "I"); // true
Console.WriteLine("I".ToLower() != "i"); // true

Esto no es cierto, por ejemplo, para la la configuración regional y cultural "en-GB".

Además se debe tener en cuenta estos otros dos casos para la cultura turca (Albahari, 2012):
  • Las fechas se formatean como día.mes.año.
  • Se usa la coma (,) como indicador de punto decimal.

3.2 Localización

En particular, la localización está más relacionada con la última tarea descrita en la sección 3.1.1; es decir la escritura de assemblies satélite. La ventaja de esta tarea es que el programador puede dedicar esfuerzos posteriores a la construcción de la aplicación.

.NET Framework cuenta con los mecanismos y artefactos de software para permitir al programador aplicar un formato específico acorde a las reglas de una cultura particular. Esto por medio del uso de la funcionalidad de formato que ofrece el método ToString en instancias de objetos DateTime y tipos de datos por valor.

Sin embargo, el programador debe tener en cuenta que durante la escritura de la aplicación se debe asumir una cultura neutra; de lo contrario surgirán comportamientos inesperados hasta la falla fatal en la ejecución de la aplicación (Albahari, 2012).

[Nota: Más adelante se describe con más detalle este proceso de localización de aplicaciones.]

4. Conclusiones

Con esto artículo al programador ha comprendido los lineamientos básicos a considerar a la hora de construir una aplicación que trasciende una cultura y requiere adaptar formatos y conversiones a distintas configuraciones regionales y culturales.

Los próximos artículos se enfocan en el trabajo con valores numéricos: conversiones, matemática, uso de la estructura BigInteger, números complejos, entre otros.

5. Literatura & Enlaces

Albahari, J., Albahari, B. (2012). C# 5.0 in a Nutshell. United States: O'Reilly Media.
Cadenas de Caracteres y Manipulación de Texto en C#/5: Char (2016, julio 21). Recuperado desde: https://ortizol.blogspot.com.co/2015/11/cadenas-de-caracteres-y-manipulacion-de-texto-en-csharp-parte-1-5-char.html
Cadenas de Caracteres y Manipulación de Texto en C#/5: Sistemas de Codificación de Texto y Unicode (2016, julio 21). Recuperado desde: https://ortizol.blogspot.com.co/2016/04/cadenas-de-caracteres-y-manipulacion-de-texto-en-csharp-parte-5-5-sistemas-de-codificacion-de-texto-y-unicode.html


O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.