Tutorial de PoEdit: cómo traducir proyectos de software libre

Si estás leyendo esto es probable que ya te hayas metido en el estupendo berenjenal de las traducciones. Enhorabuena y…, paciencia. Todo se aprende con tiempo y ganas.Si  llegaste a querer traducir para aportar tu granito de arena al mundo del software libre (o necesitas una herramienta para añadir opciones de lenguaje a una web), y lo que esperabas era un texto plano en inglés (por ejemplo) para pasarlo a otro idioma, te habrás dado cuenta (como me dí yo) de que no es así de simple.

Pero tampoco es mucho más complicado. En estas breves líneas intentamos explicar el caso más común que es que te asignen un fichero en formato .pot para traducir.

Este es un aporte de Daniel Durante, convirtiéndose así en uno de los ganadores de nuestra competencia semanal: «Compartí lo que sabés sobre Linux«. ¡Felicitaciones Daniel!

¿Qué es PoEdit?

Poedit es una herramienta de traducción , pero ojo, no lo confundamos con un traductor.
Existen otros programas que tienen la misma funcionalidad pero creo que PoEdit es el más extendido.  PoEdit no traduce como lo haría un programa cuya finalidad sea esa, sino que nos ayuda en la tarea de traducir un texto en un idioma a otro. Es decir, nos presentará unas cadenas de caracteres en un idioma y somos nosotros los que debemos traducirlas al idioma deseado.

En principio, uno puede preguntarse ¿y para eso necesito un programa?;¿porqué no usar directamente editores de texto como gedit o el bloc de notas de windows?. La respuesta es bien sencilla: PoEdit produce una salida de las cadenas traducidas en un formato preparado para ser incluido directamente en los directorios de un servidor que almacenan las páginas en código html, php, etc. de forma que será reconocido como un fichero de traducción inmediatamente funcional al ser situado en el directorio de ficheros de traducciones. Obviamente puede (y suele) haber más de un fichero en estos directorios destinados a almacenar las traducciones a distintos idiomas, donde cada fichero contiene información de qué y cómo representar los caracteres de la traducción para un idioma determinado.

Los ficheros que maneja PoEdit son ficheros de plantilla, terminados con la extensión .pot,  ficheros de traducción, terminados con la extensión .po y fichero.mo, que son ficheros compilados que hacen más rápido su acceso. Los últimos son creados automáticamente si así lo especificamos en la configuración de PoEdit.

PoEdit existe en versiones para GNU/Linux, Windows y Mac OS X.

Ficheros de Plantilla y ficheros de traducción

¿Recuerdas como maneja un procesador de texto una plantilla? Pues algo parecido ocurre con PoEdit. El fichero de plantilla contiene las cadenas a traducir y unos espacios reservados para unos datos que luego serán rellenados cuando comencemos el proceso de la traducción. Esos datos, además de las cadenas literales originales y traducidas son, por ejemplo, nombre del último traductor (ya que la tarea pudo comenzarla un traductor pero no haber sido terminada por el mismo), el nombre del equipo de traducción, el juego de caracteres, etc. Son como una especie de metadatos que dan información sobre el fichero de traducción.

¿Pero para traducir desde una plantilla…?

Sólo haz una copia de la plantilla a otro fichero que renombrarás de la misma forma pero con la extensión .po Bueno, no exactamente de la misma forma, ya que para que se sepa a que idioma va a
ser traducido el original, se debe añadir un código de dos dígitos al final del nombre del fichero de plantilla, antes de la extensión.

Por ejemplo:

Supongamos una web en idioma inglés. Su página principal se llama index.html, para traducirla tendremos que disponer de un fichero de plantilla llamado index.pot (el paso de index.html a index.pot es otro proceso en el que no entramos). Cuando dispongamos de ese fichero index.pot, sencillamente lo renombramos a index.es.po ,si es el Español el idioma al que vamos a traducirlo.

Una vez nombrado así el fichero ya podemos comenzar a procesarlo con PoEdit.

En la imagen siguiente tenéis un fragmento de fichero .po en donde se ven las cadenas a traducir (son las que siguen al literal msgid entre comillas) y el lugar donde irán las cadenas traducidas por nosotros con PoEdit (dentro de las comillas que siguen al literal) msgstr.

Si os surge la pregunta ¿y no puedo editar el fichero .po y poner la traducción directamente entre las comillas que siguen a msgstr?, la respuesta es Sí, aunque es más cómodo y más ordenado hacerlo con PoEdit (sin mencionar que sería necesario introducir manualmente en el lugar correcto los metadatos de los que hablamos antes, y es mejor dejar a PoEdit esa tarea; además no tendríamos opción a abtener el fichero compilado .mo).

En la imagen siguiente teneis la cabecera de un fichero .po donde aparecen los metadatos referentes al fichero:

En el fichero .pot estos metadatos no contendrían información, mientras que en el fichero .po aparecería la información referente a cada item.

Instalación y Configuración

PoEdit viene en los repositorios de aplicaciones para GNU/Linux para Debian 6.0 stable/main. Supongo que también para otras distros basadas en paquetes .deb, su instalación es por tanto directa, bien usando aplicaciones como Synaptic o el gestor en línea de comandos apt, de la forma:

apt-get install poedit

Después de su instalación acedemos al programa y procedemos a especificar las preferencias en Edición →Preferencias, donde pondremos nuestro nombre, y dirección de correo electrónico. El resto podemos, en principio, dejarlo tal como Poedit lo presenta.

Trabajando con el fichero .po

Primero configuramos nuestro fichero en Catálogo->Opciones como indica la imagen siguiente:

Es importante rellenar la sección Formas plurales con la cadena nplurals=2; plural=n != 1; El resto lo pondréis de forma personalizada.

En la pestaña Carpetas seleccionaremos libremente un directorio de nuestro ordenador donde queramos tener las traducciones,

Después de hacer esto veréis  si queréis abrir el fichero .po con un editor de texto plano que los meta-datos a los que hacíamos referencia han cambiado.

Todo listo para empezar a traducir las cadenas que en la pantalla principal de PoEdit aparecerán con un formato similar al siguiente:

Donde ya hemos traducido e incluido en la ventana inferior la traducción de la cadena que aparece arriba. Sólo queda guardar los cambios.

¿Que es eso de fuzzy?

Cuando no tenemos clara la traducción de una cadena pero sabemos aproximar su traducción debemos marcarla como fuzzy. En este caso la traducción queda incompleta y se podrá enviar el fichero .po a otro traductor que revisará esas cadenas (en realidad, en el proceso de varios traductores y revisores se revisa todo)

Bueno, como final de este pequeño tuto os diré que es útil una visión del texto completo, no estructurado en líneas como lo presenta PoEdit.

Para extraer el texto solo en español usamos el comando po2txt:

po2txt -w 75 nombre-del-artículo.es.po  nombre-del-artículo.es.txt

-w 75 indica el ancho de línea a 75 caracteres.

(hay que tener instalados los paquetes gettext y translate-toolkit)


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Pehuén Raineri dijo

    AL poedit lo llevo bien, la explicacion es muy buena pero cuando quiero extraer el texto me tira error. tengo que poner la ruta al archivo?

    va lo que me sale:

    user@ubuntu:~$ po2txt -w 75 English.po English.txt
    processing 1 files…

    po2txt: warning: Error processing: input English.po, output English.txt, template None: [Errno 2] No such file or directory: ‘English.po’
    [###########################################] 100%
    user@ubuntu:~$ po2txt -w 75 ^Cglish.po English.txt

  2.   Do Xa dijo

    Si estan interesados en localizar web software, PC software, móvil software o cualqier otro tipo de software, reccomendo con calor este rápido y intuitivo instrumento de localización: http://poeditor.com/.

  3.   anymex dijo

    creo que me perdí en una parte del articulo pero no entiendo, para que servirían estos archivos

  4.   David Segura M dijo

    Para las traducciones de los diferentes programas, cuando quieres ayudar a traducir algún proyecto a otros idiomas ( como por ejemplo Pidgin, Qcomicbook etc etc ) el estándar que se usa es este tipo de archivo pues por las razones que explica en el artículo facilita la tarea.

  5.   David Segura M dijo

    Muchas gracias por el aporte, dilucida muchas dudas que tenía, pues aunque hay algunos proyectos que permiten la traducción directamente en internet o Launchpad como lo solia hacer Marlin, para la mayoria se usaba el formato .po y aún no me quedaba claro su edición!

  6.   jota dijo

    Por si a alguien le puede servir:
    Hay una página que traduce tanto con Google como con Microsoft simultáneamente:
    http://www.traductor–google.com

  7.   Diego Bruschetti dijo

    programas como OmegaT? no funcionaria?

  8.   erknrio dijo

    Perdón por mi ignorancia pero estaba tratando de crear mi propia página web en varios idiomas y no sé como se hacen las traducciones, me explico:

    Tengo un .po default en el idioma base español (España) y estoy creando otro para traducirlo a inglés en_EN. Lo que no sé es como puedo comprobar que las traducciones se cargan bien. ¿Se carga automáticamente según el idioma del navegador del visitante? ¿Debe crear algún fichero intermedio? ¿Debo poner las típicas banderitas y que según la que pulse se carga una traducción u otra?

    Sinceramente, soy muuuuuy nuevo en esto y apenas estoy empezando a usar el poedit como saber todo lo que hay debajo de eso :(.

    Nota: Uso poedit en Windows 7 64bits y a mi en el idioma del .po (al crear el nuevo catálogo) no me salía un desplegable. Puse simplemente Spanish e English.

  9.   Selena dijo

    ¡Hola! Si estan interesados en localizar cualqier tipo de software, reccomendo con calor este rápido y intuitiva herramienta de localización: http://poeditor.com/.

  10.   natali dijo

    Yo uso poedit para traducir textos y quisiera saber como puedo contabilizar los caracteres que he traducido y asi poder hacer cuentas para cobrar lo traducido, no encuentro el modo de hacer el recuento de caracteres traducidos….se puede hacer?

    1.    xero dijo

      poder hacer cuentas para cobrar lo traducido??
      creo que no te has enterado muy bien de como va el tema verdad
      leete la licencia gpl

    2.    erknrio dijo

      No lo puedes hacer lo único sería copiar esas frases a un editor de textos (libre office writer, word, etc.) y ahí ver la cantidad de caracteres de las frases.

  11.   Guillermo dijo

    Si van a traducir a otro idioma, la información sobre plurales de la ventana de Catalog-Properties: Formas plurales, pueden buscarla en:
    http://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html