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.
[NotaEstas 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 ToUpperToLower, 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.