Está en la página 1de 13

Tema 6

6. Internacionalizacin
n n

Introduccin Definicin
n n

Internacionalizacin y localizacin Elementos especficos de la localizacin

n n n

Proceso de Internacionalizacin Ventajas de construir aplicaciones internacionalizadas Ejemplo muy sencillo con Java

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Introduccin
Hace unos aos el software se produca en un nico lenguaje, normalmente ingls. Si una persona hablaba otro idioma, tena que aceptar el programa como estaba. Actualmente, debido sobre todo a los ordenadores personales, han proliferado los usuarios con una formacin muy diversa. Esto ha obligado a hacer las aplicaciones ms usables y tambin, como una parte del proceso de usabilidad, a hacer las aplicaciones en las lenguas propias de los usuarios.

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Internacionalizacin
Internacionalizacin
Proceso de construir un producto para que sea utilizado en el mercado internacional, especificndolo en el diseo de sus caractersticas y en el cdigo

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Localizacin
Localizacin
Adaptacin de un producto software al lenguaje y a las convenciones locales y culturales de una regin particular Cada pas tiene una localizacin nica. De hecho, una lengua puede ser hablada en ms de un pas, por ejemplo el castellano es hablado en Espaa y en la mayor parte de los pases de Amrica Latina, pero hay diferencias nacionales con la moneda, entre otras cosas. Por ello cada pas representa una localizacin nica.
Comunicacin Persona-Mquina 4 A. Beln Martnez

Tema 6

Localizacin (II)
En Windows se puede especificar una localizacin concreta acudiendo a

Panel de Control
Configuracin Regional

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin


A la hora de internacionalizar una aplicacin hay que tener en cuenta:
Los mensajes y texto que aparecen en una aplicacin y que deben ser traducidos Y adems, los elementos que son especficos de una localizacin
Calendarios, formatos de fechas, horas, etc. Formatos de nmeros y monedas Unidades de medida

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin


Calendarios. Existen diferentes estilos de calendarios:
Gregoriano, budista, chino, hebreo Diferentes formatos en el gregoriano
aa/mm/dd aaddd aaaa/mm/dd dd/mm/aa mm/dd/aa

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin (II)


Los Formatos de Fecha varan de un pas a otro
19 de abril de 1970 ----------- Espaa 4/19/70 ----------- Reino Unido 19/4/70 ----------- Dinamarca 1970-04-19 ----------- Suecia

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin (III)


Los Formatos Monetarios varan tambin de un pas a otro
USA Noruega Suiza Alemania --------------------------------------------------------$1,234.56 Kr1.234,56 sFr1234,56 1.234,56DM

Comunicacin Persona-Mquina

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin (IV)


Tiempo Horario, al igual que los anteriores tambin varia de una localizacin a otra
USA Canad Suiza Alemania Noruega ----------------------------------------------------------------------8:32 20:32 20,32,00 20.32 Uhr KI 20.32

Comunicacin Persona-Mquina

10

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin (V)


Nmeros y Smbolos numricos
EEUU
Billn, uno seguido de nueve ceros La coma separa miles

Amrica Latina y Europa


Billn, uno seguido de doce ceros La coma separa decimales

Unidades de medida La mayora sistema mtrico decimal (Km, cm,...) EEUU emplea la milla y la pulgada Temperatura
Celsius (mayora) pero tambin se emplea Farenheit

Comunicacin Persona-Mquina

11

A. Beln Martnez

Tema 6

Elementos Especficos de la Localizacin (VI)


Tamaos de papel
Mayora: DIN A-3, DIN A-4 EEUU: legal, letter, ledger

Formato direcciones postales


Mayora: nombre de la calle + nmero EEUU: nmero + nombre de la calle

Signos de puntuacin
Algunos smbolos no utilizados: , ,... Griegos: signo de interrogacin parecido al ;

Colores
Occidentales: rojo parar, verde proseguir Convencin no vlida en China

Iconos
Comunicacin Persona-Mquina 12 A. Beln Martnez

Tema 6

Proceso de Internacionalizacin
A la hora de internacionalizar una aplicacin la idea perseguida es bsicamente separar en la aplicacin los datos del cdigo. Dnde:
Los datos hacen referencia a todos aquellos elementos (cadenas, mensajes, conos, etc) que cambian de un pas a otro (es decir, de una localizacin a otra). El cdigo hace referencia a la lgica de la aplicacin, es decir, es el cdigo de la aplicacin que se ejecuta igualmente para todos los pases y lenguas.

Comunicacin Persona-Mquina

13

A. Beln Martnez

Tema 6

Proceso de Internacionalizacin (II)


La idea se basa en tener :
Un nico bloque de cdigo, es decir, el cdigo de la aplicacin siempre va a ser nico y el mismo. Y varios bloques de datos, uno por cada pas (localizacin).
Datos en espaol

Datos en ingls Datos en francs


Comunicacin Persona-Mquina

Cdigo de la Aplicacin

14

A. Beln Martnez

Tema 6

Ventajas de hacer Aplicaciones Internacionalizadas


Tradicionalmente, el desarrollo de software internacional se ha hecho en dos etapas: En primer lugar se desarrollaba la aplicacin en una versin determinada, castellano, ingls, etc. Posteriormente, se haca la versin a otro idioma duplicando el cdigo de la aplicacin para traducirlo y adaptarlo. Al final haba tantos cdigos de la aplicacin como adaptaciones a diferentes pases se hubiesen realizado. Sin embargo, si se considera desde el diseo de la aplicacin la posibilidad de que sta tenga que adaptarse a diferentes mercados las ventajas que se obtienen son varias. A continuacin las veremos brevemente.

Comunicacin Persona-Mquina

15

A. Beln Martnez

Tema 6

Ventajas de hacer Aplicaciones Internacionalizadas (II)


Se pueden crear versiones localizadas ms fcil y rpidamente
nicamente hay que preocuparse de cambiar el bloque de datos. El cdigo de la aplicacin no es necesario tocarlo.

Mantenimiento del cdigo menos costoso


El mantenimiento del cdigo (cualquier modificacin) es ms fcil, ya que slo hay una versin del mismo, lo que tambin conlleva un mejor aprovechamiento de los recursos.

Comunicacin Persona-Mquina

16

A. Beln Martnez

Tema 6

Ejemplo de Internacionalizacin en Java


n

Clases principales implicadas en la internacionalizacin en Java


n n

Locale ResourceBundle

Ejemplo sencillo para internacionalizar una aplicacin Java que nicamente contiene cadenas

Comunicacin Persona-Mquina

17

A. Beln Martnez

Clases Java para Internacionalizacin


Clase Locale
Identifica un idioma y un pas concreto, es decir, una localizacin.
en US -> ingls Estados Unidos en UK -> ingles Reino Unido es ES -> espaol Espaa Todos estos cdigos estn disponibles en las siguientes direcciones web:
http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html

Tema 6

Clase ResourceBundle
Contiene objetos especficos a la localizacin

Comunicacin Persona-Mquina

18

A. Beln Martnez

Tema 6

Ejemplo
A continuacin vamos a ver un ejemplo de internacionalizacin en Java en el que se incluyen como elementos a localizar nicamente cadenas (Strings)

Comunicacin Persona-Mquina

19

A. Beln Martnez

Tema 6

Ejemplo - Descripcin
Partimos de una clase Strings1 que nicamente muestra tres mensajes por pantalla. Queremos:
Que estos mensajes aparezcan en espaol si la configuracin regional del ordenador est como Espaol (Espaa) Que aparezcan en ingls si la configuracin regional del ordenador est como Ingls (EEUU) Y adems, el cdigo de la clase ha de ser nico y siempre el mismo para todos los casos (es decir, slo debemos tener un Strings1.java) .

Comunicacin Persona-Mquina

20

A. Beln Martnez

Tema 6

Clase de la que partimos


Esta clase es de la que partimos inicialmente, y muestra tres mensajes por pantalla.
public class Strings1{ static public void main(String [] args){ System.out.println(Hola a todos); System.out.println(Departamento de Informtica); System.out.println(Universidad de Oviedo); } }

Comunicacin Persona-Mquina

21

A. Beln Martnez

Tema 6

Pasos a seguir
1. Identificar los elementos a localizar, es decir, identificar el bloque de datos. En este caso son los tres mensajes:
Hola a todos Departamento de Informtica Universidad de Oviedo

2. Crear un fichero de propiedades, de texto, que contenga dichos datos.


Habr un fichero para cada localizacin El fichero tendr un nombre especial que identifica la localizacin
NombreFichero_en_US.properties ( para localizacin Ingls EEUU) NombreFichero_en_UK.properties ( para localizacin Ingls Reino Unido) NombreFichero_es_ES.properties (para localizacion Espaol Espaa) ...

Este fichero slo puede contener cadenas (Strings) y a cada una de las cadenas se les asignar un nombre (el que queramos)
Comunicacin Persona-Mquina 22 A. Beln Martnez

Tema 6

Nombres por los que despus recuperaremos los mensajes

Pasos a seguir (II)


En este caso, por tanto, se crearn dos ficheros, con nombre, MisDatos cuyo contenido es el siguiente.
//Contenido del fichero MisDatos_es_ES.properties cadena1 = Hola a todos cadena2 = Departamento de Informtica cadena3 = Universidad de Oviedo
Localizacin Espaol (es) Espaa (ES)

//Contenido del fichero MisDatos_en_US.properties cadena1 = Hello Everybody! cadena2 = Department of Computer Science cadena3 = University of Oviedo
Comunicacin Persona-Mquina 23

Localizacin Ingls (en) EEUU (US)

A. Beln Martnez

Tema 6

MisDatos_en_US.properties o bien MisDatos_es_ES.properties

Pasos a seguir (III)


3. Internacionalizar la clase, es decir, adaptarla para que seleccione los datos del
fichero adecuado en funcin de la localizacin que est seleccionada en el ordenador. Para ello
Locale localizacion = Locale.getDefault();

3.1 Obtener la localizacin seleccionada en el ordenador:

3.2 Cargar los datos del fichero de propiedades(llamado MisDatos) correspondiente, en funcin de la localizacin obtenida en el paso anterior:
ResourceBundle mensajes =ResourceBundle.getBundle("MisDatos",localizacion);

3.3 Extraer cada uno de los mensajes en funcin del nombre que se les asign en el fichero de propiedades:
System.out.println(mensajes.getString("cadena1")); System.out.println(mensajes.getString("cadena2")); System.out.println(mensajes.getString("cadena3"));

Comunicacin Persona-Mquina

24

A. Beln Martnez

Tema 6

Clase Internacionalizada
La clase ya internacionaliza tendra, por tanto, este aspecto:
import java.util.*; class Strings2{
Locale localizacion = Locale.getDefault(); ResourceBundle mensajes = ResourceBundle.getBundle("MisDatos",localizacion); System.out.println(mensajes.getString("cadena1")); System.out.println(mensajes.getString("cadena2")); System.out.println(mensajes.getString("cadena3")); }

Comunicacin Persona-Mquina

25

A. Beln Martnez

Tema 6

Nuevas localizaciones
Si ahora deseramos que nuestra aplicacin respondiese a nueva nueva localizacin, como por ejemplo, francs (Francia), nicamente sera necesario crear un nuevo fichero de propiedades de nombre MisDatos_fr_FR.properties con las cadenas traducidas a francs. La clase Strings2 no sera necesario tocarla ni aadirle ningn cambio.

Comunicacin Persona-Mquina

26

A. Beln Martnez