Traduccion/Howto
De openSUSE, la enciclopedia libre.
Tabla de contenidos |
I18N
La internacionalización (proceso denominado en geek speak como i18n porque la palabra inglesa tiene 18 letras) se hace en Linux mediante las utilidades gettext (ver info gettext). Durante el desarrollo un programa extrae los mensajes del código fuente original, generando un fichero 'messages.pot'. Desde éste, se crea un fichero message.po para cada idioma: por ejemplo bootloader.es.po: es éste el fichero que traducimos. Durante la compilación, este fichero es examinado y se genera un fichero binario (.mo o .gmo) que se instalará en algún sitio, tal como /usr/share/YaST2/locale/es/LC_MESSAGES/bootloader.mo. Durante la ejecución, el programa cargará el fichero de mensajes, substituyendo el texto inglés original por el texto traducido (si lo encuentra).
- Más info: openSUSE Localization Work with PO Files
- Orden info gettext o equivalente en konqueror.
Traduciendo
Usamos programas como emacs, poEdit o Kbabel para hacer nuestra parte del trabajo; sobre todo los dos últimos son programas que automatizan alguna parte del mismo y que en ocasiones pueden dar problemas. Pero incluso programas como el "mc" o el editor "mcedit" pueden servir.
Tecnicismos de los ficheros .po
El texto a traducir viene en ficheros de extensión .po, dividido en mensajes con este formato aproximado:
#. translators: help for 'help' option on command line #: library/commandline/src/CommandLine.ycp:34 msgid "Print the help for this module" msgstr "Imprimir la ayuda para este módulo"
El campo msgid es el original en inglés y no se puede tocar aunque esté mal. Es generado automáticamente por las herramientas gettext a partir de un fichero .pot. El campo msgstr marca la traducción. Los # son los comentarios y marcas.
Marcas en mensajes
El texto en los ficheros .po puede tener varias marcas de comentarios, que son:
- #: Reference (generado por gettext, no tocar) marcan las fuentes, de dónde viene cada string.
- #. Extracted comment (generado por gettext, no tocar). Son notas del programador hacia el traductor.
- #, Flag, lo genera el programa de traducción para sus propias marcas, como fuzzy.
- # Comentarios del traductor: los únicos que podemos crear impunemente.
Que es un mensaje marcado fuzzy
Son mensajes cuya parte inglesa ha cambiado ligeramente desde la versión anterior, y se marcan así para anularlo sin perder del todo la traducción; hasta que no se revise el programa mostrará el mensaje en inglés. También se marcan así los mensajes traducidos automáticamente.
Aceleradores
Algunas veces el texto inglés contiene letras antecedidas por el símbolo &, sobre todo en los textos de los menús. Éste simbolo marca la letra que corresponde a la tecla "aceleradora", la que sirve para acceder rápidamente al menú sin navegar por él.
Hay que marcar igualmente otra letra en el menú traducido, y hay que tener en cuenta que el mismo menú no tenga ninguna otra entrada con la misma letra marcada.
La complicación es saber cuales son todas las entradas del mismo menú, sin poder ejecutar el programa.
Plurales
En algunos casos el mensaje inglés viene dividido en versiones singular y plural; hay que estar atento y generar también sendas traducciones, y que sean consistentes. Y dad gracias, que hay idiomas con cuatro o cinco formas plurales :-p
Marcas de variables
Los mensajes pueden contener cadenas como %i, que son reemplazadas en tiempo de ejecución por el contenido formateado de una variable. Es crucial mantener el mismo número y tipo de variable que en el original, o el programa puede caerse. La mayoría de las veces los errores serán detectados a tiempo automáticamente antes de aceptarse el fichero, pero no darlo por garantizado.
Marcas de formato
El texto puede contener marcas de formato como <b>negrita</b> que también hay que respetar escrupulosamente.
Otros errores
Hay multitud de errores que pueden colarse en la traducción, y que programas como kbabel pueden detectar automáticamente. Por ejemplo, si el original inglés termina en ".", se detectará error si termina en "palabra" o "palabra. ". Hay que fijarse en cosas como la existencia de exclamaciones (en español hay que abrir y cerrar) o los retornos de carro forzados. Si se usa una herramienta que permita la verificación del fichero, es importante perder un rato antes de dar por terminado el fichero en verificarlo para evitar posibles bugzilazos.

