next up previous contents
Next: i18n en PersonalJava Up: i18n en Qt/integrado Previous: Unicode   Contents


Traducción de aplicaciones

Qt provee herramientas y funciones para ayudar a los desarrolladores a proveer aplicaciones en los lenguages nativos de sus clientes.

Para hacer a una cadena de caracteres traducible, simplemente se envuelve en una llamada a la función tr() ( lee traducción )

saveButton->setText( tr(''Save'') );
tr() intenta reemplazar la cadena de caracteres literal (ej: ``Save'' ) por su traducción, si es que esta se encuentra. Por ejemplo, el Inglés puede ser usado como lenguaje fuente y el Chino como lenguaje traducido ó viceversa. El argumento enviado a tr() es convertido al Unicode de la codificación por defecto de la aplicación.

La sintaxis general de tr() es:

Context::tr(``texto fuente'',''comentario'')
El contexto (``Context'') es el nombre de subclase de QObject. Por lo general es omitido, y en tal caso la clase que contiene la llamada a tr() es usado como el contexto. El ``texto fuente'' es el texto a traducir. El ``comentario'' es opcional; junto con el contexto, éste provee información adicional para traducciones humanas.

Las traducciones son almacenadas en objetos QTranslator, archivos .qm (Qt Message File) los cuales usan mapeo de memoria. Cada archivo .qm contiene las traducciones para un lenguaje en particular. El lenguaje puede ser cambiado al momento de la ejecución; cualesquier diálogo creado usando Qt Designer puede retraducirse a si mismo al correr sin ninguna provisión especial.

Qt provee tres herramientas para preparar archivos traducidos: lupdate, Qt Linguistic y lrelease.

  1. lupdate extrae todo, los tres (contexto, texto fuente, comentario ) del código fuente, incluyendo archivos .ui creados con Qt Designer, y genera un archivo .ts (Translation Source 6.30). El archivo .ts es leible por humanos.
  2. Los traductores usan Qt Linguistic para proveer traducciones del texto fuente en el archivo .ts
  3. lrelease es la herramienta que genera archivos altamente comprimidos .qm los cuales son usados en dispositivos integrados como la Zaurus.


next up previous contents
Next: i18n en PersonalJava Up: i18n en Qt/integrado Previous: Unicode   Contents
Cancerbero 2005-02-25