Lo que sigue es el procedimiento (algo formalizado, es cierto) de los pasos que seguí para traducir el RFC791. Cada cual es libre de hacerlo como quiera, lo que importa es el resultado: se debe obtener un documento con la misma forma que el original pero en español. Os remito al y a su traducción para que los compareis. El documento RFC2223 son instrucciones diversas sobre como escribir RFCs. Es de lectura obligada para conocer el formato RFC.
Todos los RFCs se presentan en formato de texto Unix (ASCII) con saltos de página, listos para ser impresos. Los originales en inglés están formateados con la herramienta 'nroff', mediante sencillos comandos para justificar y para las cabeceras y pies de página. Así que un RFC nos llega en un fichero '.txt' separado en páginas, cada una con su cabecera y su pie. Al traducir el documento, es obvio que la longitud de los párrafos puede variar y descuadrar las páginas originales. (ver el punto '3. Reglas de Formato' del rfc2223-es.txt).
Quitar todas las cabeceras, saltos de página, pies de página y saltos de línea de relleno que tenga el documento, de forma que, salvo ciertas excepciones como saltos de línea extra en las primeras páginas que actuan de portada, nos queden los párrafos y títulos separados entre sí por una sola línea en blanco. Esto se puede hacer con perl o sed o awk. En breve tendré preparado algo para hacerlo automáticamente.
Una vez el RFC en formato 'contínuo' convendría hacer una prelectura del mismo. Esto no es evidentemente obligatorio, pero en mi opinión agiliza luego la traducción.
Aquí empieza el curro guapo. Uno empieza por el principio y traduce el titulo del documento, los subtitulos, autores y demás (y en este punto, podemos citarnos como traductores al español). Conforme empezamos a traducir párrafos, podemos obviar cualquier justificación de texto que aparezca y añadir el comando nroff adecuado para que haga el trabajo (ver Uso básico de nroff). Como de vez en cuando (más de lo que nos esperamos) nos vamos a encontrar con palabras o frases de cuya traducción al español no estamos seguros, sugiero lo siguiente:
Encerrar la palabra(s) entre corchetes, poner dos puntos y su posible(s) traducción(es) al español. P. ej.:
[delay: retardo, retraso, demora] [packet switch: intercambiador de paquetes]
Copiar esto a un fichero de texto que tendremos a modo de diccionario y si nos volvemos a encontrar con la palabra o frasecita de marras, ir a ese diccionario a ver como la hemos traducido antes y, ÿquién sabe?, a lo mejor en ese momento se nos ocurre una traducción más acertada.
Os remito al glosario de LuCAS para cualquier duda sobre como traducir términos técnicos.
Este es el curro pesado. Volver a leer todo el documento. áAh! áPero esta vez en español, y traducido por nosotros mismos! Es muy conveniente hacerlo, si se quiere mantener un mínimo de calidad, al menos en cuanto a ortografía, dislexia digital, omisiones, repeticiones y demás gazapos varios. El truco para no hartarse consiste en leerlo como si fueramos un lector potencial, intentando sobre todo entender lo que se dice, para poder detectar posibles frases mal formadas. Siempre se nos escaparan cosas, pero bueno...
Si ya hemos colocado los comandos nroff en el fichero traducido, ahora hay que pasarlo por el formateador nroff. En 'RFC2223-es.txt' se explica como hacerlo. Básicamente nroff se encarga de justificar el texto, separarlo en páginas y poner cabeceras y pies de página.
Se envía el archivo con los comandos nroff (sin formatear). Si el coordinador considera que hay algo que revisar se lo notificará al traductor(es). Como no es probable que tenga tiempo de leer el documento completo, se basará en comparar el formato general del original inglés con la traducción. Cuando el documento este listo para su publicación, enviará copia a LuCAS y/o al responsable de la página web RFC-ES en su caso, así como e-mails a la lista LuCAS y otras listas/grupos de correo/news anunciando la disponibilidad del documento. También se pondrá en contacto con el IAB para notificar la traducción del RFC. Los grupos de correo a los que se envía notificación son:
Esta sección es la traducción al español, cortesía de José M. Cainzos, del documento Una lección rápida sobre el uso del comando nroff... del Editor RFC.
Utilizar el comando nroff es un proceso de dar formato a un
documento utilizando comandos llamados macros, que principalmente están
formados por dos letras precedidas de un punto y a veces seguidas por un
número. Por ejemplo: .in 3
(que significa: sangra el siguiente texto con tres
espacios).
Comandos nroff básicos:
# es el número de espacios que quieres que se sangre el texto. La sangría continuará hasta el siguiente comando .in . Si quieres que el texto no se sangre utiliza .in 0
salta página
.ti también sangra pero sólo una línea. Por ejemplo, si se necesita sangrar una línea 8 espacios pero el resto de la página está con sangría de 3 espacios puede usar .in 8 para esa única frase.
centra en la línea el número de frases que se especifique
los espacios de más se ignorarán. Este comando tendrá efecto hasta que se encuentre el comando .nf (y viceversa).
.fi el rápido zorro marrón salta sobre el perro vago
se formateará así:
el rápido zorro marrón salta sobre el perro vago
se utiliza para texto o gráficos a los que no se quiera quitar los espacios sobrantes.
.nf el rápido zorro marrón salta sobre el perro vago
se formateará así:
el rápido zorro marrón salta sobre el perro vago
Además, todos los comandos de nroff que aparezcan en el texto como parte de él, se habrán de colocar a la derecha, ya que el programa nroff reconoce el punto como comando sólo si aparece al principio de la línea (sin espacios por delante).
Por ejemplo...si un documento se escribe del siguiente modo:
.nf Network Working Group D. Cohen Request for Comments: 2441 Myricom Categoría: Informativa Noviembre 1998 .ce Trabajando con Jon .ce Contribución realizada en UCLA, 30 de Octubre de 1998 .ti 0 Categoría de este memorándum. .fi .in 3 Este memorándum provee información para la comunidad de Internet. No especifica ningún tipo de estándar de Internet. Este memorándum es de libre distribución. .ti 0 Aviso de Copyright Copyright (C) The Internet Society (1998). Todos los derechos reservados. .ti 0 Tribute .fi .in 3 En 1973 , después de realizar simulaciones de vuelo interactivas sobre la red ARPAnet, entré a formar parte de ISI y apliqué esa experiencia a la charla interactiva sobre ARPAnet.
***Se fomateará de la siguiente forma:***
Network Working Group D. Cohen Request for Comments: 2441 Myricom Categoria: Informativa Noviembre 1998 Trabajando con Jon Contribución realizada en UCLA, 30 de Octubre de 1998 Categoría de este memorándum. Este memorándum provee información para la comunidad de Internet. No especifica ningún tipo de estándar de Internet. Este memorándum es de libre distribución. Aviso de Copyright Copyright (C) The Internet Society (1998). Todos los derechos reservados. Contribución En 1973 , después de realizar simulaciones de vuelo interactivas sobre la red ARPAnet, entré a formar parte de ISI y apliqué esa experiencia a la charla interactiva sobre ARPAnet.
No se preocupe de cómo se ejecuta el programa nroff. Simplemente envíeme el texto con los comandos nroff y yo haré el resto.
GRACIAS!!!
Ref: 'El entorno de programación UNIX' cap.9 pp. 298-310; Brian W. Kernighan, Rob Pike; Ed. Prentice Hall, Ed. 1987; ISBN 958-880-067-8.
Al invocar a nroff con la opción -ms, podemos utilizar las órdenes de formato definidas en el paquete de macros 'ms'. He aquí algunas de ellas, que pueden ser útiles en determinadas circunstancias. Hay muchas macros definidas en ms y otros paquetes de macros. Estos pueden encontrarse en /usr/lib/groff/tmac/'. P. ej. el paquete 'ms' está definido en el archivo 'tmac.s', y el paquete 'man' en 't.mac.an'.
.AB empieza resumen (abstract); termina con .AE .AU el nombre del autor en la siguiente línea; se permiten múltiples .AU .B texto en negrita .DS t presentación de texto sin justificar; terminado con .DE; t= L (ajuste a la izquierda), C (centrad0), B (bloque centrado) .FS empieza pie de página; termina con .FE .I texto en cursivas .IP s párrafo con sangría, con la cadena de caracteres 's' en la sangría .KF mantener junto el texto; pasar el bloque de texto a la página siguiente si es necesario; termina con .KE .KS mantener junto el texto en la página; termina con .KE .LP nuevo párrafo alineado a la izquierda .NH n n-ésimo nivel de encabezado numerado; el encabezado continúa hasta .PP o .LP .PP nuevo párrafo .SH subtítulo no numerado; continúa hasta .PP .TL título a continuación, hasta la siguiente orden ms
Normalmente no necesitaremos utilizar estas órdenes, excepto en determinadas circunstancias, cuando no podamos hacer algo con las órdenes básicas : p. ej. si queremos mantener un trozo de texto que representa un gráfico, datos tabulados, etc., sin que haya salto de página de por medio, usaremos '.KF ... .KE' para mantenerlo todo en la misma página (excepto que ocupe más de una página, claro está):
.KS +--------------------------------+ | Protocolo Internet & ICMP & GGP| +--------------------------------+ | | +---------------+ +---------------+ | Red Local | | Red Local | +---------------+ +---------------+ Protocolos de Pasarela Figura 3. .KE
Otro ejemplo sería una lista de referencias:
.IP [1] Referencia 1 ..... /n bla bla bla .IP [2] Referencia 2 ..... /n ble ble ble
que se vería como
[1] Referencia 1 ..... bla bla bla [2] Referencia 2 ..... ble ble ble
A veces no hay más remedio que utilizar órdenes básicas de nroff, sobre todo las secuencias de escape para caracteres especiales:
Cuando nroff no debe interpretar un carácter, como una barra invertida o un punto al principio de una línea. Para imprimir una barra invertida en la salida, se utiliza '\e'. Por otro lado, '\&' se usa para evitar que nroff interprete los puntos al principio de las líneas. nroff absorbe la secuencia '\&' e imprime el resto de la línea tal cual. P. ej, para incluir lo siguiente en un documento nroff:
.IP [1] Referencia 1 ..... .IP [2] Referencia 2 .....
se debe escribir como
\&.IP [1] Referencia 1 ..... \&.IP [2] Referencia 2 .....
y para incluir lo siguiente (OJO: ejemplo dificilillo de leer :)
while (<>) { # Lee el fichero de entrada entero. s/FORMFEED(\[Page\s+\d+\])\s+/ \1\n\f\n/g;
se debe escribir:
while (<>) { # Lee el fichero de entrada entero. s/FORMFEED(\e[Page\es+\ed+\e])\es+/ \e1\en\ef\en/g;
- guión \(hy " \- signo menos \(mi signo menos en fuente matemática \(em guión largo \& no imprime nada; protege la línea \espacio espacio en blanco de ancho fijo, no ajustable \e caracter de escape literal, normalmente \ \(bu 'bullet' (punto centrado en altura ÷) \(dg cruz \(*a letra griega alfa; \(*b = beta, ... \(*p= pi, etc
.br salto de línea .sp n deja n líneas en blanco .sp 3 deja tres líneas en blanco .sp .5 deja media línea en blanco .sp 1.5i deja 1.5 pulgadas .sp 3p deja 3 puntos .sp 3.1c deja 3.1 centímetros el espacio al final de una página se descarta, así que un .sp largo equivale a un .bp .ta pone tabuladores cada media pulgada .ta n n n... pone tabuladores a las distancias especificadas desde el margen izquierdo
Si os da por echarle un vistazo a los archivos de macros, he aquí la pinta que tiene una definición de macro:
.de CW \&\f(CW\\$1\fP\\$2 ..
donde
.de <macro> Inicio definición de <macro> \$n valor del n-ésimo argumento de la macro cuando esta es llamada .. Fin de macro
Espero que todo esto os sea de utilidad.