Lihuen
RSSRSS AtomAtom

Diferencia entre revisiones de «Cómo traducir programas»

(Página creada con «Traducir un programa no implica modificar su código y no es necesario saber programar para traducir un programa, cualquier persona puede hacerlo típicamente solamente hac...»)
 
Línea 6: Línea 6:
 
* .po/.mo de gettext
 
* .po/.mo de gettext
 
*.dtd de Mozilla (aún estamos escribiéndolo)
 
*.dtd de Mozilla (aún estamos escribiéndolo)
* .qm/.tr de QT y KDE
+
* .qm/.tr de QT y KDE (aún estamos escribiéndolo)
  
 
==Gettext==
 
==Gettext==

Revisión de 13:49 24 feb 2014

Traducir un programa no implica modificar su código y no es necesario saber programar para traducir un programa, cualquier persona puede hacerlo típicamente solamente hace falta saber inglés y conocer el idioma al cuál se va a traducir.

Los programas que pueden traducirse sin ser modificados se dice que están internacionalizados (i18n es un numerónimo de internationalization). Las adaptaciones a una región de un programa como puede ser una traducción se llaman localizaciones (L10n es un numerónimo de localization)[1].

Hay distintas herramientas para hacer las traducciones, la herramienta a elegir dependerá del formato usado por el desarrollador, en este documento hablaremos de los formatos:

  • .po/.mo de gettext
  • .dtd de Mozilla (aún estamos escribiéndolo)
  • .qm/.tr de QT y KDE (aún estamos escribiéndolo)

Gettext

La mayoría de los programas en GNU/Linux se suelen traducir con usando biblioteca gettext del proyecto GNU.

¿Cómo saber si usa Gettext?

Hay varias formas de saber si un programa utiliza esta biblioteca.

  • Si el programa está instalado se pueden buscar su archivo .mo, típicamente

está en:

/usr/share/locale/{idioma}/LC_MESSAGES/{nombre_programa}.mo

o si el paquete no fue instalado con apt-get en:

/usr/local/share/locale/{idioma}/LC_MESSAGES/{nombre_programa}.mo

Donde idioma es la abreviatura de algún idioma, por ejemplo: es, es_AR, en o en_US.

  • Si se dispone del código fuente del programa, el mismo debería tener archivos

con la extensión .po para los distintos idiomas.

¿Cómo lo traduzco?

Existen distintos utilitarios para traducir estos programas, el que utilizamos en el grupo Lihuen es poedit.

Lo primero es encontrar un archivo con extensión .pot, este archivo contiene todos los strings a traducir. El archivo .pot se llama "template" y generalmente viene junto con el código fuente del programa o se puede generar automáticamente a partir del mismo.

Lamentablemente la forma de generar el .pot varía mucho de programa en programa comúnmente hay un script para generarla o un target de Makefile.

Veamos un ejemplo haciendo una traducción de tuxpaint-config, esta herramienta tiene un archivo pot en:

src/po/tuxpaint-config.pot

Creamos una traducción a partir del ".pot":

Crear traducción

Llenamos los detalles de la traducción a conciencia (si falta alguno de los campos va a tirar errores pero puede llegar a funcionar igual).

Opciones de la traducción

Elegimos un nombre para la traducción, en este paso es importante poner el nombre correcto, por ejemplo si queremos escribir una traducción genérica al español debemos nombrar el archivo "es.po", para una traducción al español orientada a la Argentina el nombre sería "es_AR.po".

Para este ejemplo, dado que tuxpaint-config ya cuenta con una traducción al español genérica, escribiremos una para Argentina:

Guardar traducción

La ventana de traducción tiene varios elementos, los más básicos son el campo que muestra el texto original y el campo para escribir la traducción:

Ventana de traducción

Por defecto el espacio para escribir es muy chico, pero se puede estirar haciendo clic en el borde señalado en la figura y arrastrando.

Guardar traducción agrandada

El siguiente paso es simplemente elegir la cadena a traducir en la parte superior de la ventana y empezar a escribir la traducción.

Primer cadena traducida

Es posible marcar una traducción como provisoria, de esa manera será fácil encontrarla en el futuro para revisarla, para esto hay que seleccionar la traducción en la parte superior de la ventana y hacer clic en el botón indicado en la figura.

Marcar como provisoria

Al guardar la traducción la lista de cadenas a traducir se reordena y se muestran los textos sin traducción, seguidos de las traducciones provisorias resaltadas en dorado y por último las traducciones normales.

Listado de traducciones ordenadas

Al guardar la traducción se genera una versión "compilada" de la traducción esta es la versión que realmente se usará, este archivo tiene una extensión ".mo". Gettext - Archivos generados.png

Si estamos traduciendo un paquete de Debian es importante eliminar este archivo ".mo" antes de invocar a dpkg-buildpackage o este comando fallará notificando que no puede representar los cambios de un archivo binario.

Para programas que se compilen o empaqueten de otra forma este procedimiento puede variar, puede ser completamente automático, puede requerir que el archivo ".mo" esté presente o requerir que se edite alguna configuración o script para admitir el nuevo idioma.