Coordinación mediante el robot de traducción
De forma experimental, y desde febrero de 2004 un robot atiende a los correos enviados a la lista de traducción para ayudar a coordinar los mensajes recibidos de los distintos traductores. También existe un robot general disponible en https://l10n.debian.org/coordination/spanish/ que da servicio a todas las listas de traducción en Debian incluyendo la española.
El robot supervisa los correos enviados y gestiona el siguiente proceso (que es el que se sigue para las traducciones):
- Un traductor indica que se va a hacer cargo de una traducción.
- Tiempo más tarde el mismo traductor envía la traducción para que sea revisada por otros miembros del grupo.
- Una vez revisada, la traducción se envía al sistema de seguimiento de bugs de Debian para que se incorpore al paquete en cuestión.
- Una vez el desarrollador responsable del paquete incorpora la traducción la errata se cierra y se considera finalizada la traducción (pasa a una etapa de revisión periódica)
El robot permite supervisar en qué estado están las traducciones publicando la lista de traducciones y su estado. Esta información se puede consultar en:
- la versión general para todos los grupos ordenados por: estado, paquete, traductor.
- el estado de la traducción de plantillas po-debconf al español.
Para que el robot sea capaz de distinguir los correos de este tipo de otras discusiones en la lista se utilizan asuntos concretos con un formato específico.
En resumen, como nos cuenta Ricardo, la idea es la siguiente:
Tomando uno al azar, por ejemplo, hace unos días, Javi Castelo envió un mensaje diciendo:
Subject: Me hago cargo de la traducción po-debconf de exim4
En lugar de eso, si hubiera estado el servicio en marcha, habría enviado uno indicando:
Subject: [ITT] po-debconf://exim4
El robot, al reconocer el formato del asunto del mensaje, lo procesa, y capta los datos adecuados (es un ITT, de un po-debconf, del paquete exim4, quién manda el mensaje, y la fecha), los almacena en la BD, y eso aparece en la página web, adscrito al equipo correspondiente ([es], en nuestro caso). El cuerpo principal del mensaje no se procesa, sólo el asunto, así que ahí se puede comentar lo que se quiera. Esta regla vale incluso para RFR, RFR2 y LCFC, ya que el bot sólo procesa los adjuntos, y descarta las partes del mensaje que no estén asociadas a un nombre de fichero.
Días (u horas) después, Javi quiere enviar lo que tiene hecho, para revisión pública:
Subject: [RFR] po-debconf://exim4
Y adjunto, envía el fichero correspondiente (es.po, sin comprimir, que el robot todavía no es capaz de trabajar con ellos). El robot procesa la petición, y se refleja el cambio de estado en la web, aparte de ponerse un enlace al documento. Cuando crea que está preparado para enviarlo, Javi envía un LCFC (misma sintaxis que para RFR), y a los pocos días (pongamos, 3), si nadie dice nada al respecto, Javi manda el documento a quien corresponda, haciendo uso del BTS, y para que quede constancia:
Subject: [BTS#123456] po-debconf://exim4
Tras lo cual, una tarea periódica en el servidor del robot revisará si ese bug ha sido cerrado, para marcarlo como DONE.
Si quieres cerrar manualmente una entrada del robot (independientemente
de su estado) sólo tienes que enviar un correo como éste:
Subject: [DONE] po-debconf://exim4
En resumen, lo que hay que hacer es:
- Enviar un [ITT] a la lista para avisar al robot que vas a traducir ese paquete.
- Enviar un [RFR] adjuntando el po traducido, para que la gente pueda revisarlo. Se aconseja dejarlo así 7 días, para que la gente tenga tiempo de mirarlo.
- Enviar un [LCFC] adjuntando el po traducido, para avisar de que dentro de poco lo vas a mandar al BTS. Se aconseja dejarlo así 3 días.
- Enviar el fichero traducido al BTS como un fallo de tipo wishlist con los datos necesarios, asegurate de adjuntar el fichero. Si no sabes enviar informes de fallo consulta la documentación.
- Te llegará una confirmación del fallo por correo asignado un número al fallo. Cuando recibas esta confirmación manda un correo electrónico a la lista con asunto [BTS#NUMERO-FALLO], para que el robot sepa que la traducción se ha enviado y está pendiente de aplicarse.
- Cuando el desarrollador aplique la traducción y suba un paquete a Debian el fallo se debería cerrar automáticamente. Al cerrarse te llegará un correo electrónico avisándote de que el fallo ha sido corregido. Cuando lo recibas mandas un correo electrónico con asunto [DONE] a la lista, para que el robot lo marque como traducido.
Pendiente
Las siguientes tareas aún no están implementadas en el robot:
- Utilizar expresiones regulares
- Aceptar adjuntos {g,b}zipeados
- Soporte de páginas de manual (no se procesan, aunque diga lo contrario la ayuda)
- Soporte de múltiples adjuntos para RFR|RFR2|LCFC
- Analizar el fichero .po adjunto utilizando msgfmt -c attached po, para ver si hay errores.
Pseudo-urls
Los pseudo-urls son el texto que se incluye en el asunto del mensaje para que el robot pueda discriminarlo del resto del tráfico en la lista. Tienen el siguiente formato:
[(ITT|RFR|RFR2|LCFC|BTS#<bugnr>)] (po-debconf|po|debian-installer|man|wml)://<name>
El estado (entre corchetes) puede ser uno de los siguientes:
- ITT (Intent To Translate, Intención de traducción)
Se envía para indicar que se va a trabajar en una traducción, evitando la duplicación de esfuerzos.
- RFR (Request For Review, Solicitud de revisión)
La traducción se ha terminado y, adjunto al correo, se envíe para que otras personas puedan revisarla y detectar errores. Le sigue en algunos casos un RFR2 si se realizan cambios sustanciales. Por favor, responda al mensaje si ha revisado la traducción aunque no haya encontrado errores en ésta.
- ITR (Intent To Review, Intención de revisión)
Se envía para evitar que se envíen LCFC cuando hay revisiones pendientes y se utiliza principalmente cuando la revisión va a durar algunos días (porque la traducción es muy grande o no hay tiempo hasta el fin de semana, etc.). El correo debería indicar cuándo se espera que finalize la revisión.
- LCFC (Last Chance For Comments, última oportunidad para enviar comentarios)
Indica que la traducción se ha terminado, se han incorporado los cambios del proceso de revisión y se enviará en breve al lugar apropiado. Se pueden enviar cuando no hay ITR, la discusión relacionada con el RFR anterior ha terminado y han pasado al menos tres días desde el RFR. Observe que no se debería enviar a menos que se haya producido al menos una revisión
- BTS (Bug Tracking System, Sistema de seguimiento de erratas)
Indica que se ha registrado una errata con respecto a la traducción en el BTS. Cada día el robot comprobará si el informe de error sigue o no abierto.
- DONE (Hecho)
Indica que la traducción ya se ha hecho, o bien se ha arreglado la errata enviada al BTS o bien la traducción ya no aplica (el paquete se ha borrado, se ha abandonado el trabajo, etc.).
El tipo puede ser po-debconf (para plantillas de debconf), debian-installer (para partes del instalador), po (para ficheros gettext), man (para páginas de manual) o wml (para ficheros del servidor de web). La estructura del nombre depende del tipo elegido. Éste es sólo un identificador pero se recomienda seguir las siguientes reglas:
- po-debconf://nombre_de_paquete
- po://nombre_de_paquete/ruta_en_el_paquete_fuente
- debian-installer://nombre_de_paquete/ruta_en_el_paquete_fuente
- wml://dirección_de_página
- man://nombre_de_paquete/sección/tema
Si envía un LCFC,RFR ó RFR2 debería adjuntar el fichero que desea revisar. El fichero debe tener la extensión correcta para el tipo definido. Para po, po-debconf y debian-installer será un fichero po, para el tipo wml un fichero wml y aún no está definido para el tipo man. Este fichero será publicado en la lista de estado en el servidor web.
El estado BTS es un tanto especial dado que el robot lo utilizará
para seguir su estado si la traducción ha sido enviada al BTS.
Se comprobará cada día si existen informes de erratas abiertos o si
han sido cerrados. Por ejemplo:
[BTS#1234] po-debconf://cupsys