Nueva Traducción de AbiWord

Lea esas instrucciones para traducir AbiWord en una lengua nueva.

Antes que empezar, verifique que tiene CVS, Perl y xgettext instalado en su ordenador. Si Ud. es un usuario de Windows, se recomienda que Ud. instala Cygwin para que tenga un ambiente como Linux donde pueda seguir estas instrucciones. Cuando está instalando Cygwin en Windows, seleccione "Perl" y "cvs", "gettext" y "gettext-devel" bajo el grupo "devel" para instalación.

Paso 1: Descargue AbiWord por CVS

Hay Instrucciones para descargar el código fuente de AbiWord por CVS. Sólo necesita el modulo abi. Instrucciones breves en Linux/UNIX/OS X son:

$ export ABIROOT=/some/suitable/location/abiword
$ mkdir -p $ABIROOT
$ cd $ABIROOT
$ export CVSROOT=:pserver:anoncvs@anoncvs.abisource.com:/cvsroot
$ cvs login
    Entregue la clave "anoncvs"
$ cvs checkout abi

Paso 2: Construir un archivo PO nuevo

Necesita construir un archivo llamado abiword.pot que es básicamente una traducción vacía de los strings de AbiWord. (Un string es una secuencia de caracteres adentro "...")

Translade al directorio abi/po y ejecuta el script "update.pl" así:

$ cd $ABIROOT/abi/po
$ ./update.pl --pot

Esto debe producir el archivo abiword.pot.

Ahora Ud. puede hacer el archivo nuevo para su lengua. Sólo necesita renombrar el archivo abiword.pot a la forma xx-YY.po donde xx o xxx es el código ISO de su lengua y YY es el código ISO de su país. Por ejemplo, fr-FR es francés, pt-BR es portugués brazileña, qu-PE es quechua de Peru, ay-BO es Aymara de Bolivia, ga-PA es guaraní de Paraguay, y arn-CL es Mapudungun de Chile. (Si no sabe el código de su lengua, vea acá y acá y busque en esta lista de códigos ISO de países.)

$ mv abiword.pot xx-YY.po

Paso 3: Traducir xx-YY.po

Cada frase de traducción en el archivo xx-YY.po parece en este formato:

ESPACIO_BLANCO
# COMENTARIO_DE_TRADUCTOR
#. COMENTARIO_AUTOMÁTICO
#: REFERENCIA...
#, BANDERA...
msgid STRING_ORIGINAL
msgstr STRING_DE_TRADUCIÖN

Los elementos importantes son msgid que contiene la frase original en inglés ymsgstr que contiene la frase de traducción. Ud. sólo necesita cambiar msgstr. Por ejemplo, si Ud. está traduciendo el msgid "Cancel" en castellano, sólo cambie de esto:

#. DLG_Cancel
#: po/tmp/xap_String_Id.h.h:127
msgid "Cancel"
msgstr ""

a esto:

#. DLG_Cancel
#: po/tmp/xap_String_Id.h.h:127
msgid "Cancel"
msgstr "Cancelar"

La bandera "fuzzy" marca frases que ha cambiado y la traducción no está actualizado. Además, "fuzzy" indica cuando no hay certeza como traducir una frase. Si Ud. no está seguro como traducir algo, debe marcar la frase con la bandera "fuzzy" y dejar un comentario para que el próximo traductor la verifique. Por ejemplo, no sabe si "Cancel" es mejor traducido como "Cancelar" o "Anular". En esto caso, ponga esto:

# ¿Debe ser "Cancelar" o "Anular"?
#. DLG_Cancel
#: po/tmp/xap_String_Id.h.h:127
#, fuzzy
msgid "Cancel"
msgstr "Cancelar"

Strings que contiene "&" or "&" indica que puede mover al este elemento en un menú o una ventana de dialogo con una tecla. El carácter que sigue "&" o "&" sera subrayado para indicar al usuario cual tecla imprimir

Por ejemplo, "&Header" aparece en un menú como "Header" y puede accederla con la tecla H or Alt + H. "Header" significa "cabecera" y es listado así en el archivo PO:

msgid "&Header"
msgstr "&Cabecera"

Sólo subraye un carácter en un string. Debe evitar subrayando caracteres delgados como 'i' o 'l' porque los usuarios de AbiWord no podrían ver que son subrayando sin dificultad. Además evite subrayando caracteres como 'j' e 'y' que son más abajo y difíciles leer cuando subrayados.

Strings largos que son difíciles leer pueden ser divido en lineas múltiples. Encierre cada línea extra en comillas ("..."). Eso no tiene ningún efecto en el string final porque la computadora quita todo el espacio blanco afuera de las comillas.

Si quiere poner comillas adentro un string, usa el código escapado \"  El código escapado \n inserta una entrega dura (línea nueva) en un string y \t inserta un tabulador. Por lo general, sólo es necesario añadir estos códigos escapados al msgstr si son encontrado en el msgid. Los códigos %s y %d en el msgid indican que una variable de un string o de un numero sera insertado en tal punto. Verifique que su msgstr contiene el mismo numero de estos códigos como el msgid.

For ejemplo, esta mensaje de pantalla tiene algunos de estos códigos escapados códigos de variables. Anote como cada linea es encerrado en comillas.

msgid ""
"%s not implemented yet.\n\n"
"If you are a programmer, feel free to add code in %s, line %d\n"
"and mail patches to:\n\n"
"\tabiword-dev@abisource.com\n\n"
"Otherwise, please be patient."
msgstr ""
"%s todaví­a no está implementado.\n\n"
"Si usted es un programador, siéntase libre para añadir código en %s, lí­nea %d\n"
"y enviar parches a:\n\n"
"\tabiword-dev@abisource.com\n\n"
"En otro caso, tenga paciencia."

Puede editar el archivo xx-YY.po con cualquier editor de texto con tal que es guardado como UTF-8 (8-bit Unicode). Para evitar errores de sintaxis, utiliza un editor de texto que reconoce código fuente como emacs, vim, gedit, or kate para que no termine un string incorrectamente ni se olvide encerrarlo en comillas. Notepad++ es un buen editor de texto para usuarios de Windows. (Ponga "Lenguaje" al "C" y marque "Encodar en UTF-8" bajo "Formato").

Algunos prefieren usar software especial de traducción como KBabel o poedit que mantiene memoria de las frases traducidos para que sólo tiene traducirlas una vez. Estos programas también asegura traducciones consistentes y evita la confusión de diferentes traducciones por la misma frase. Si mucha gente quieren colaborar en a traducción, sería más fácil utilizar un traductor de PO basado en el web como as Pootle.  Para más información, lea este resumen de las herramientas de traducción.

Si está traduciendo en una lengua que presta muchas frases de otra lengua, puede usar el script instrans.php para insertar traducciones de la otra lengua. Por ejemplo, muchuas lenguas indigenas en Latinoamerica usa frases españoles para los términos de la computadora. Un traductor puede dejar estos términos blancos y usar instrans.php para insertar las frases españoles en su archivo PO.  También personas que no puedan leer inglés o quieran ver la traducción en otra lengua , pueden usar instrans.php con la opción --comment para insertar las traducciones de otra lengua en el campo de commentarios.  Por ejemplo, traductores de quechua (una lengua indígena de los Andes) muchas veces quieren ver la traducción en español antes de traducir al quechua.

Paso 4: Probar la traducción

Después de traducir el archivo PO, debe ver como su traducción aparecerá en AbiWord. Para probar su traducción, hay que convertirlo de un archivo .po al archivo .string con el script de Perl ui-backport.pl. Traslade al directorio abi/po y dé este mandato:

$ ./ui-backport.pl xx-YY

Este script creará un archivo xx.YY.string en el directorio abi/user/wp/strings. Si ha descargado todo el codigo fuente, puedo compilarlo ahora y instalarlo para ver como serve su traducción. Si sólo ha desdescargado el modulo abi, tiene que probar su traducción adentro una instalación ya existente. Busque el directorio AbiWord/strings en su copia instalada de AbiWord. En Linux/UNIX suele encontrarlo en /usr/share/AbiSuite-2.X/AbiWord/strings y en Windows en c:\Program Files\AbiSuite2\Abiword\strings. En Linux/UNIX/OS X puede encontrar su archivo .string con el mandato locate:

$ updatedb
$ locate xx-YY.string

Reemplace el archivo .string existente con uno que se acabe de crear. Renombre el archivo xx-YY.string existente a xx.YY.string.old y copie su archivo .string nuevo del directorio abi/user/wp/strings al AbiWord/strings. Si su modulo abi queda bajo el directorio home/user, los mandatos serían:

$ su
    Entregue la clave de root
$ cd /usr/share/AbiSuite-2.X/AbiWord/strings
$ mv xx-YY.strings xx-YY.strings.old
$ cp /home/user/abi/user/wp/strings/xx-YY.strings ./
$ exit

Si Ud usa Windows, arranque AbiWord y vaya a Tools->Preferences and selecione seleccione su lengua por "User Interface Language". Después de salir y re-empezar el programa, AbiWord debe cargar su traducción. Si Ud. está empezando una traducción nueva, AbiWord probablemente no reconoce su lengua porque todavía no tiene el codigo por su lengua el la programación. En tal caso, puede probar su traducción renombrando su archivo .strings al archivo .strings de un diferente lengua. Por ejemple puede renombrarlo pt-BR.strings y selecciona portugués Brasileña como su lenguaje de interfaz.

Para utilizar AbiWord con su traducción en Linux/UNIX/OS X, ponga su locale a lengua de su traducción. Verifique cual lengua esta utilizando ahora:

$ locale

Si es diferente de su lengua de su archivo .string, cambielo:

$ LANG=xx_YY.UTF-8
$ export LANG

Ahora arranque AbiWord. Si AbiWord aparece en inglés, probablemente hay un error en su archivo PO. Verifique que todos los strings terminan en comillas y el numero de %s y %d en los msgid corresponde al numero en los msgstr.

Abra todas las ventanas de diálogo en AbiWord y verifique que las traducciones caben en el espacio disponible. A veces tiene que cortar frases en botones. Pase por los menús y submenús para ver si puede acceder a cada entrada por una tecla. Verifique que ninguna tecla de atajo fuese asignado a más que una entrada en un menú. También verifique que los caracteres subrayados sean claramente legibles. Chequee los caracteres subrayados en las ventanas de diálogo también.

Si es posible, chequee su traducción en ambos Windows y Linux/UNIX porque algunos ventanas de diálogo como "Preferencias" y "Imprimir" se transforma por el sistema operativo.

No se preocupe si algunos botones aparece en una lengua diferente de su traducción. En algunas ventanas de diálogo, AbiWord incorpora botones estándar del sistema operativo. En Windows, estos botones aparecerá en la lengua del sistema. En Linux/UNIX, los botones del sistema aparecen en inglés si su sistema no reconoce su lengua o no tiene traducción para su lengua.

Cuando está terminado usando AbiWord, recuedese devolver a su lengua original de su sistema usando LANG y export.


Step 5: Entregar la traducción

Después de traducir y probar la tradución, la mande su archivo xx-YY.po a la lista de correo-e de desarrolladores para que sea incorporado en el proyecto. La comprima como zip o bzip2 para no incomodar los desarroladores con conexiones lentas de internet y prevenir su eliminación como spam por el servidor de correo de AbiWord.

Para inscribirse en la lista de correo-e, mande un correo-e a abiword-dev-request@abisource.com con la palabra "subscribe" en el cuerpo de la mensaje. Una vez que está inscrito, puede mandar un correo-e a abiword-dev@abisource.com y adjuntar su traducción.

Si Ud. empezó su traducción hace algunas meses, probablemente su archivo PO no está actualizado. In dos o tres meses, algunos msgid strings probablemente se han cambiado y otros fueron añadido. Para actualizar su archivo xx.YY.po, descargue de nuevo el modulo abi por CVS y copie su archivo xx.YY.po en el directorio nuevo abi/po. Luego ejecuta el script update.pl para buscar cambios y actualizar su archivo PO:

$ ./update.pl xx-YY

update.pl no sólo añade strings nueves para traducir, sino también marca strings cambiados con la bandera "fuzzy". Puede buscar la palabra "fuzzy" para encontrar las entradas cambiadas y corregirlas antes de entregar su traducción.