Traduciendo Documentación en Texinfo con emacs y po4a
Índice
1 Instalación
Texinfo es el formato de marcas estándar para documentación de GNU. Permite crear manuales en formato pdf, info, html, etc. desde un solo fichero fuente .texi con las características avanzadas que debería tener un buen manual.
Antes de familiarizarnos con los comandos del proceso de traducción instalemos los paquetes debian que vamos a utilizar:
apt-get install texlive texinfo texi2html emacs gettext-el po4a aspell-es dict dict-freedict-eng-spa dict-freedict-spa-eng dictionary-el dict-gcide
2 Comandos
Si tenemos un fichero texinfo y queremos convertirlo a pdf se puede usar el siguiente comando:
texi2pdf myfile.texi
El problema con texi2pdf es que a veces no ofrece buenos mensajes de depuración, para depurar es mejor hacerlo con:
makeinfo myfile.texi
Además con este comando se crea el fichero .info
Si queremos crear un sitio web con nuestro documento podemos usar:
texi2html myfile.texi
Si se desea traducir el fichero del inglés al español u otras lenguas es posible utilizar gettext gracias a po4a. Siguiendo estos pasos:
# Crea un fichero .pot a partir de un .texi po4a-gettextize -f texinfo -m myfile.texi -p myfile.pot # Se traduce del inglés al español abriendo myfile.es.po con emacs en modo po-mode cp myfile.pot myfile.es.po # Creamos myfile.es.texi, el texi traducido po4a-translate -f texinfo -m myfile.texi -p myfile.es.po -l myfile.es.texi
3 Actualizando
Es probable que con el tiempo salgan nuevas actualizaciones del fichero .texi original, podemos actualizarnos con msgmerge del siguiente modo:
# Crea el fichero .pot actualizado a partir del nuevo .texi po4a-gettextize -f texinfo -m myupdated.texi -p myupdated.pot msgmerge myold.es.po myupdated.pot > myupdated.es.po
Las frases en las que haya habido variaciones aparecerán como fuzzy debiendo ser debidamente revisadas.
4 GNU Emacs
Y ahora vemos algo de configuración del .emacs para hacer más fácil y divertida la traducción:
;;;; PO-MODE ;;;; (require 'po-mode) (defun iacute() (interactive) (insert "@'{@dotless{i}}")) ;; El atajo C-i insertará i acentuada, a la manera nativa de texinfo (define-key po-subedit-mode-map "\C-i" 'iacute) ;; Debe cortar las líneas automáticamente (add-hook 'po-subedit-mode-hook 'auto-fill-mode) ;;;; ASPELL ;;;; ;; Para que avise (setq ispell-program-name "aspell" ispell-extra-args '("--lang=es")) (add-hook 'po-subedit-mode-hook (lambda() (flyspell-mode 1))) ;;;; Dictionary ;;;; (global-set-key "\C-cs" 'dictionary-search) (global-set-key "\C-cm" 'dictionary-match-words)
5 Algunos Criterios Personales de Traducción
Estos son algunos buenos acuerdos que sin tratar de ser completos sí son útiles para otros hackers con quienes he compartido tiempo traduciendo.
5.1 Capitalización
En títulos y subtítulos solo aparecerá en mayúscula la primera letra.
5.2 Traducción de Código
Para evitar problemas, solo se traducirán comentarios y cadenas de texto que se deban imprimir por pantalla. No variables, ni funciones.
5.3 Impersonal
Las frases se escribirán de manera impersonal. Es decir, no se dirá "prueba este código", sino "se va a probar este código"
5.4 Una palabra dos idiomas
A veces ayuda a la comprensión lectora el aparte de traducir la palabra dejarla en el idioma original. En este caso se dejará con la etiqueta texi @samp.
6 Licencia
Copyright (C) 2015 David Arroyo Menéndez Se permite copiar, distribuir y/o modificar este documento bajo los términos de la GNU Free Documentation License, Version 1.3 o cualquier versión publicada por la Free Software Foundation; sin Secciones Invariantes y sin Textos de Portada o Contraportada. Una copia de la licencia está incluida en GNU Free Documentation License.