Internacionalizar aplicaciones java

Continuando con los posts relacionados con i18n (internacionalización) aquí les dejo un snippet para leer archivos de propiedades, estos son usados en java para guardar texto en formato llave=valor.

ResourceBundle bundle = java.util.
                    ResourceBundle.getBundle(“ruta_archivo_properties”);

String value = bundle.getString(“llave”)

Si tenemos un archivo por ejemplo “resource.properties” en el paquete net.edokun.resources, entonces el código sería algo asi:

ResourceBundle bundle = java.util.
                    ResourceBundle.getBundle(“net/edokun/resources/resource.properties”);

los archivos properties deben tener la información arreglada de la siguiente manera:

llave1=Hola
llave2=Adios

Una vez que obtenemos el archivo con la clase ResourceBundle para obtener el texto lo hacemos con el método getString(“llave”) donde “llave” es el key en el archivo properties en este caso puede ser llave1 ó llave2 y lo que regresa es el valor, Hola o Adios según la llave.

Por ultimo, si queremos hacer nuestra aplicación internacional lo podemos hacer creando más archivos properties uno por cada idioma adicional, siempre poniendo el sufijo _CodigoLocale ejemplo:

resource_en_US.properties – para inglés
resource_ja_JP.properties -> para japonés
resource_es_MX.properties ->para español Mexico

y obviamente en cada uno el valor de las llaves está en el respectivo idioma.
Así como todos los archivos properties deben estár en la misma ruta.

 Ya solo es necesario indicarle a nuestra aplicación que idioma debe usar, para ello usamos el snippet anterior para cambiar el locale y eso es todo.

Leave a Reply

Your email address will not be published. Required fields are marked *