Propiamente hablando
Bueno, pues de nuevo estoy aquí, con otro tip para Java, en este caso se trata de algo curioso que me ha pasado con la internacionalización, los archivos properties que se utilizan para traducir aplicaciones, y que una vez conozco, estoy seguro que traerá de cabeza a más de uno, al menos a mi me ha pasado hasta que descubrí la solución, por casualidad ;).
Para todos aquellos que programáis en entornos web para PDA's (¿Al?) seguro vamos, seguro que os ha ocurrido si habéis intentado internacionalizar la aplicación. ¿o no?
Bueno, el problema parte de que, como somos Latinos, pues nada, utilizamos acentos, eñes, y todo eso que a los americanos no les gusta XDD.
¿Cuál es el problema?, bueno pues que al final se cansan de nosotros y como ejemplo, si este texto estuviese internacionalizado, lo veríamos así:
En definitiva, que no nos entienden XDD.
Bueno, hablando ya en serio, este es el problema que me ha ocurrido. Yo tan tranquilamente escribiendo los textos de internacionalización en mi archivo properties, y al visualizarlo en PDA's (en navegadores PC no me ha ocurrido, no sé por qué) me encuentro con este tipo de problemas.
NOTA: El problema me ha pasado concretamente al utilizar la internacionalización de Struts, pero según mis investigaciones es un problema común a los ResourceBundle
creados con archivos properties según se desprende de la información existente en los javadoc de la API Java 1.4.
Afortunadamente :) el otro día buscando información acerca de los ResourceBundle creí encontrar la solución. El tema es que al guardar propiedades en archivos properties se utiliza el encoding ISO-8859-1. Para aquellos caracteres que no se pueden expresar en esta codificación, se utilizan códigos de escape Unicode con la partcularidad de que solamente se puede utilizar una "u" en la secuencia. Para la conversión de archivos entre diferentes codificaciones el JDK provee de una herramienta llamada
native2ascii
tanto para Windows como para Solaris (supongo que en Linux ya habrá herramientas de este tipo).
¡A jugaaaaaaaaarrrrrrr!
Si queréis hacer pruebas y tenéis definido el path al directorio bin del JDK, abrid una pantalla de consola y teclead:
> native2ascii
Ahora podéis hacer pruebas. Meted palabras con acentos o eñes, y veréis cual es su representación correcta en archivos properties. Por ejemplo:
están es est\u00a0n
sartén es sart\u201an
gañán es ga\u00a4\u00a0n
¿Qué mas palabras se os ocurren? ;)
¿Es verdad que funciona lo de los comentarios?
Enviado por emillan en mayo 06, 2004 a las 07:01 PM CEST #