]>
Manuel De Vega Barreiro Linux Landia
barreiro@arrakis.es
2000 Manuel de Vega Barreiro Recopilación de algunos trucos y ayudas para traducir documentos Linux Trucos y ayudas para traducir documentos Linux
Tipos de trabajos Ficheros po Este tipo de trabajos engloba todos los mensajes de las aplicaciones. Además cada trabajo de traducción corresponde a un paquete de gnome, no a una única aplicación. Puedes por tanto encontrar mensajes de varias aplicaciones. Un caso claro de esto son los paquetes gnome-core y gnome-applets, que engloban el conjunto de aplicaciones básicas de Gnome.. En cada trabajo deberás traducir los siguientes ficheros: <paquete>.es.po Mensajes de la aplicación. *.desktop menús también pueden existir los siguientes ficheros: *.soundlist descripción de sonidos *.mime acciones para tipos Mime *.sheet descripciones en XML En el documento Traducción de documentación Gnome tienes instrucciones sobre la como traducir cada uno de estos ficheros. Recuerda revisar los textos marcados como 'fuzzy' (mezcla automática), y en caso de que la traducción sea correcta, o una vez corregida, eliminar la etiqueta 'fuzzy'. ejemplo: #: panel/hints.c:78 #, fuzzy msgid "Panel hint" msgstr "Consejo para el panel" como la traducción es correcta debe quedar #: panel/hints.c:78 msgid "Panel hint" msgstr "Consejo para el panel" En el caso de que la mezcla automática de la traducción antigua y la nueva versión no sea correcta, corrigela y quita la etiqueta 'fuzzy'. Las lineas que empiezan po #~ son mensajes anticuados #~ msgid "Panel hint" #~ msgstr "Consejo para el panel" y deben eliminarse antes de realizar la entrega. Ficheros de ayuda y manuales en formato sgml El formato sgml es similar a html, un fichero Ascii con marcadores ('token', texto entre < y >) para indicar el formato del documento. Debes traducir todo excepto los propios marcadores. Tampoco conviene traducir los identificadores (id="xxx"), ni los nombres de los dibujos. No es necesario que escribas los acentos y otros caracteres especiales en formato sgml (á = &aacute;); una vez finalizado el documento se pueden convertir de iso8859_1 (á) a sgml (&acute;) y viceversa. Parece que en la ultima versión de las herramientas docbook no hay que prestar atención a este tema, ya hace el cambio de forma automática trucos Ficheros po Al terminar la traducción puedes comprobar que el fichero "compila" usando los siguientes comandos: msgfmt --statistics <paquete>.es.po.dis devuelve los mensajes traducidos, sin traducir, y las mezclas. msgfmt -vv <fichero po> se obtiene un listado de errores en el fichero. msgfmt -c -v -o /dev/null file.po indica los mensajes que faltan por traducir, los fuzzy y los errores en mensajes con formateadores C (%s, %d, etc) msgmerge es.po paquete.pot > es.new.po mezcla de forma inteligente una antigua traducción y un nuevo fichero de mensajes. Estos comando están incluidos en el paquete: gettext Uso de popsell para la revisión ortográfica: popsell -n es.po -p ispell -- -d spanish -T latin1 %f Para cambiar de codificación sgml a iso8859_1 existe la utilidad recode -d iso-8859-1..ht4 fichero.sgml convierte todo, pero mete algunas secuencias de clavo recode -d ht4..iso-8859-1 fichero.sgml No me funciona No he conseguido que me funcione de forma totalmente satisfactoria, así que uso un guión perl para estos cambios. Si alguien sabe como hacer funcionar recode, agradeceríamos sus comentarios. Configuración de emacs Para que emacs reconozca ficheros de este tipo debes poner en .emacs (setq auto-mode-alist (cons '("\\.po[tx]?\\'\\|\\.po\\." . po-mode) auto-mode-alist)) (autoload 'po-mode "po-mode") (autoload 'po-find-file-coding-system "po-mode") (modify-coding-system-alist 'file "\\.po[tx]?\\'\\|\\.po\\." 'po-find-file-coding-system) Modificaciones para revisar la ortografía al terminar la traducción de cada mensaje de forma automática. Para ello activaremos la función 'ke-po-ispell-buffer' M-x ke-po-toggle-ispell fichero po-mode.el @@ -1785,6 +1757,7 @@ (skip-chars-backward " \t\n") (if (eq (preceding-char) ?<) (delete-region (1- (point)) (point-max))) + (run-hooks 'po-subedit-exit-hook) (let ((string (buffer-string))) (po-subedit-abort) (po-find-span-of-entry) fichero .emacs (setq ispell-dictionary "american") ;; (set-default 'ispell-local-dictionary "american") (defvar ke-po-dictionary "german-latin1" "*Dictionary to use for spell checking `msgstr' entries. For available dictionaries see `ispell-dictionary-alist'.") (defvar ke-po-ispell-buffer nil "*non-nil enable spell checking before exit subedit.") (defun ke-po-toggle-ispell () "Toggle ispell." (interactive) (setq ke-po-ispell-buffer (not ke-po-ispell-buffer))) (defun ke-ispell-buffer () (let ((ispell-local-dictionary ke-po-dictionary)) (if ke-po-ispell-buffer (ispell-buffer)))) (add-hook 'po-subedit-exit-hook 'ke-ispell-buffer) Modificaciones para revisar un fichero po de un punto hasta el final. (defun ke-po-ispell-msgstr (dict) "`ispell' a `msgstr' entry." (interactive "*") (let ((start) (end) (ispell-local-dictionary dict)) (setq end (re-search-forward po-any-msgstr-regexp)) (ispell-region (+ (match-beginning 0) (length "msgstr")) end))) (defun ke-po-do-ispell () "`ispell' a PO file from point to the end of the buffer." (interactive "*") (while (not (eobp)) (ke-po-ispell-msgstr ke-po-dictionary))) Configuración de vim Añadir rn rl fichero .vimrc augroup PO-MODE autocmd! autocmd BufRead *.po map ^[n /msgstr "<CR>z.f"l autocmd BufRead *.po map ^[p k?msgstr "<CR>z.f"l autocmd BufRead *.po map ^[u /msgstr ""<CR>z.$ autocmd BufRead *.po map ^[f /#, fuzzy<CR>^[n autocmd BufRead *.po map ^[r ?#, fuzzy<CR>dd^[n autocmd BufRead *.po map ^[z ?#:<CR>o#, fuzzy^[^[n autocmd BufRead *.po map ^[c ?msgid<CR>f"lv^[nk$hhy^[nP autocmd BufRead *.po map ^[i :w<CR>:!pocheck %<CR>:e %<CR> autocmd BufRead *.po map ^[e /<<<<<<CR>zt autocmd BufRead *.po map ^[d ^[p^[eV/=====<CR>d/>>>>><CR>dd augroup END A todas las funciones se accede pulsando Alt+key: n-siguiente mensaje, p-previo, u-siguiente no traducido, f-siguiente fuzzy, r-quita la marca fuzzy, z-marca como fuzzy, c-copia el original (para derechos de autor y otros textos no traducibles), i-comprueba con pocheck, e-busca siguiente conflicto, d-borra trozo antiguo de conflicto. Por supuesto cada ^[ debe reemplazarse por el carácter de escape actual, esto es, ctrl+v <esc>. Entrega y recogida de trabajo Normalmente siempre hay trabajos anunciados en las paginas web de Gnome-es. Algunas veces el enlace al trabajo te permitirá registrarte como colaborador y recoger tu mismo el trabajo. En otras te registraras en ese momento y recibirás los ficheros por e-correo mas adelante (normalmente en menos de una semana, pero recuerda somos todos somos voluntarios, yo concretamente suelo contestar los fines de semana). Cuando tengas la traducción terminada (o una parte si es muy grande), debes enviarla por e-correo al coordinador de tu trabajo o al coordinador de Gnome-es. Ellos se ocuparan de revisar que el formato es correcto y de entregarlo al repositorio cvs de Gnome. Estos procedimientos están destinados a los traductores noveles y aquellos que no sepan o no tengan interés en trabajar directamente con el repositorio de ficheros fuente. En este caso el coordinador de Gnome-es o el de tu trabajo concreto se ocupara de estos temas. Sin embargo, si eres una mente inquieta, puedes tu mismo ocuparte de todo el proceso. A continuación os doy algunos consejos sobre como obtener y preparar ficheros directamente del repositorio cvs. Eso si recuerda siempre informar al coordinador de Gnome-es o al de tu trabajo del paquete o documento que has decidido traducir, para evitar que dos personas trabajen en lo mismo. ficheros po Este es el tipo de trabajos en el que mas se agradece la iniciativa del traductor, ya que son los que mas cambian y dan por tanto mas trabajo a los coordinadores. Son, no obstante, los que tienen un proceso de recogida y entrega mas complicado. Para recoger ficheros po debes seguir el siguiente procedimiento: Todos los comandos cvs indicados en este documento se aplican a la rama estable de desarrollo. Esta rama suele etiquetarse como 'HEAD', aunque puede tener distintas etiquetas (<paquete>_1_0 es otra etiqueta habitual). Se puede consultar la pagina de status de traducciones, o consultar con el coordinador del paquete para obtener la etiqueta de esta rama. Requisitos: Una versión de Linux instalada Gnome (recomenadado) Conexion a internet en servicio Paquete cvs Paquete gettext Paquetes de desarrollo (opcional) Paquetes de desarrollo Gnome (opcional) Hay también que tener previsto espacio para los paquetes de código fuente con los que vayas a trabajar. Por ejemplo gnome-core ocupa mas de 10MB, otros como gnome-print son mas pequeños, 2MB, pero ojo los hay inmensos como gimp de mas de 30 MB. copiar el paquete de cvs Para copiar el código fuente del paquete "gnome-pepe" cd /home/gnome/cvs # o el directorio donde quieras dejar los fuentes cd head # directorio para la rama estable export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome cvs login # cuando pida "password" pulsar [Retorno] # la primera vez que se copie un paquete cvs -z3 co -Pd -r HEAD gnome-pepe # para actualizar el paquete posteriormente cvs -z3 update -A gnome-pepe crear el fichero gnome-pepe.pot Este fichero contiene todos los mensajes en ingles de los ficheros fuente del paquete. cd /home/gnome cd cvs/head cd gnome-pepe/po ./update_pofiles.sh # este guion no se si es necesario, no ejecutar # de momento ./update.sh Algunos paquetes no incluyen estos dos guiones, pero como son iguales para casi todos, puede usar la copia que tengo en el servidor ftp de Linux Landia. crear o actualizar el fichero es.po Si no existe traducción previa, esto es no hay ya un fichero es.po en el cvs cd /home/gnome/cvs/head cd gnome-pepe/po cp gnome-pepe.pot es.po Si existe una traducción de una versión anterior mv es.po es.po.xxx # copia de salvaguardia la version previa msgmerge es.po.xxx gnome-pepe.pot >es.po Como valor de xxx suelo poner la revisión cvs del fichero que se puede sacar del fichero: po/CVS/Entries Bueno y despues de todo este rollo ya tenemos el fichero es.po necesario para la traducción, y si te pica la curiosidad de saber como es de grande el trabajito teclea el ya conocido comando: msgfmt -v es.po Entrega de un fichero po al repositorio cvs Esta parte no esta terminada, no uséis este método de momento Pendiente finalizar y revisar Requisitos: cuenta en el cvs. chequear el fichero: msgfmt -v es.po msgfmt -v -c -o /dev/null es.po corregir los posibles errores. actualizar la copia del repositorio, repitiendo el proceso de recogida, pero esta vez haciendo la mezcla con nuestro fichero es.po recién traducido. Comprobaremos que suele haber nuevamente mensajes sin traducir y otros 'fuzzy', a veces bastantes (los desarrolladores no paran nunca de modificar y mejorar los paquetes, y esto hace difícil la vida del coordinador de traducciones). Aquí se puede entregar tal cual y después revisar tranquilamente el nuevo fichero (o enviarlo nuevamente al colaborador para que lo revise). Lo importante es no demorar la entrega, que se hace con los comandos. cd /mnt/gnome cd cvs/head cd gnome-pepe cvs -d :pserver:cuenta@cvs.gnome.org:/cvs/gnome login password: xxxxxx es la clave de tu cuenta cvs cd po cvs -d :pserver:cuenta@cvs.gnome.org:/cvs/gnome -z3 commit es.po Para informar de los cambios es conveniente anunciarlos en el fichero ChangeLog del directorio po añadiendo: 2000-05-20 nombre de la persona que modifica cvs <e-correo> * es.po Updated Spanish translation Y enviando el nuevo fichero al cvs cd /mnt/gnome cd cvs/head cd gnome-pepe/po cvs -d :pserver:cuenta@cvs.gnome.org:/cvs/gnome login password: xxxxxx es la clave de tu cuenta cvs cvs -d :pserver:cuenta@cvs.gnome.org:/cvs/gnome -z3 commit ChangeLog cvs -d :pserver:cuenta@cvs.gnome.org:/cvs/gnome logout ficheros desktop, menu, etc Pendiente Con este tipo de ficheros hay que tener especial cuidado ya que contienen las traducciones en todos los idiomas. terminar el guión perl que junta y separa los ficheros desktop. adecuarlo a los otros tipos de ficheros. ficheros de ayuda y manuales Pendiente Direcciones de interés Lista de correo sobre traducciones de Lucas Grupos de traducción de documentación al Castellano Glosario de Lucas Glosario de Kde Pagina del proyecto de traducción de Gnome Docbook, herramientas para generar la documentación Diccionario ispell Castellano Adaptación del programas ispell para ficheros po