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: i18n en PersonalJava Up: i18n en Qt/integrado Previous: Unicode Contents