Traducción

El ArPug pone a disposición este sitio y la herramienta web  Pootle (Ingresar) para realizar la tarea de traducción de documentación y temas relacionados al español (u otros lenguajes si hay interesados).

Actualmente estan cargados los siguientes proyectos (ver abajo el estado de cada uno):

  • Referencia SQL, Tutorial: Traducción de secciones del manual de PostgreSQL (Wiki)
  • Documentación Oficial: Traducción de los archivos fuentes SGML ( Pootle)
  • PgInstaller (Win): Traducción del instalador de PostgreSQL para Windows ( Pootle)
  • OneClickInstaller (Win,Linux,Mac): Traducción del instalador de PostgreSQL para Linux, Windows y MacOS ( Pootle)
  • PgAdmin3 (Win,Linux,Mac): Traducción de la herramienta de administración de PostgreSQL para Linux, Windows y MacOS ( Pootle)
  • Prueba de Pootle: Proyecto de prueba (se puede probar editar y borrar, para eso está) ( Pootle)
  • Terminologia: Terminologia sugerida en común para todas las traducciones ( Pootle)

Para más información consultar en la lista  pgsql-es-fomento@postgresql.org

Instructivo de Traducción por Wiki

La operatoria es bastante simple, solo hace falta usar un navegador de internet:

  • Iniciar Sesión, si no dispone de usuario y contraseña para este sitio, ver página ComoContribuir
  • Crear la página (si no existe):
  • Si la página ya existia, presionar Edit this page en la parte inferior para editarla y presionar wyswyg para el editor visual
  • Editar y traducir el texto, reemplazando el texto en inglés, presionar Preview Changes para ver las previsualizaciones.
  • Grabar: ingresar un pequeño comentario que diga que se hizo en Comment (para el hitorial, ej. ''Traducción de ...'') y presionar Submit Changes

Recomendaciones Traducción por Wiki

Para mantener los cambios pequeños y facilitar el seguimiento, se recomienda:

La traducción está disponible instantaneamente (no hay que compilar, subir, etc.), el sitio tiene funciones de búsqueda, indexación, etc., y se puede usar como ayuda online para PgAdmin3 cambiando en Archivo, Opciones, PG Help Path a http://www.arpug.com.ar/trac/wiki/

Nota: Para los bloques preformateados, agregar #!pre como primera línea para que Trac respete el formato (es normal que en la edición veamos los signos de formato !' y `, en la versión final no deberían aparecer si se especificó correctamente `#!pre`)

Aclaración: No hay que dejar el texto viejo en inglés, y tampoco es necesario poner {nombre} ni similar para marcar el texto traducido por un usuario. Ambas cosas quedan registradas en la Cronología (historial) automáticamente.

Instructivo de Pootle

La herramienta Pootle utiliza archivos  Gettext Portable Object (.po):

  • pueden ser editados via web (ver siguiente sección)
  • o ser descargados, editados con un editor de escritorio, y subidos nuevamente.

Para una ayuda mas detallada, ver  documentación oficial

Guía de inicio rápido

  • Ingresar a  Pootle
  • Ir a  Registro (si todavia no tienen una cuenta creada):
    • Completar los datos y enviar el formulario de registración
    • Esperar el código de activación por email
    • Ingresar dicho código en el formulario de activación
  • Ir a  Activar (si creo la cuenta pero no la activó)
    • Ingresar el código de activación (llega por email) en el formulario
  • Ir a  Iniciar Sesión (si ya tiene la cuenta creada y activada):
    • Ingresar nombre de usuario y contraseña
    • Elegir el Proyecto: PostgreSQL-Doc o PgInstaller (o Prueba de Pootle para probar)
    • Elegir el Idioma: Español
    • Ir a Mostrar Funciones de Edición
    • Ir a Traducción Rápida o Traducir mis cadenas (si se han asignado textos)
      • Comienze a traducir completando la casilla de texto!
      • Cuando este conforme con la traducción, presione el botón Enviar o Sugerir
      • Puede realizar búsquedas ingresando las palabras en el casillero para tal fin
      • Al pasar por sobre un texto se habilita la opción Editar
      • Puede navegar por los textos usando el botón Saltar (siguiente) o Regresar (anterior)

Guia de Estilo

Para el caso de PgInstaller y OneClickInstaller:

  • Se trató de usar un español neutro y se optó por una traducción técnica más literal, en vez de buscar sinónimos o construcciones ideomáticas más correctas (que pueden ser apropiadas en una región pero bastante incomprensibles para otras)
  • Los nombres de paquetes, módulos o archivos no se tradujeron. Ej. R-Tree, pero si Criptographic Functions a Funciones criptográficas.
  • Las palabras o términos muy técnicos, específicos o de dudosa traducción se tradujeron pero incluyendo entre parentesis el término original o siglas en inglés. Ej. Soporte para Lenguaje Nacional (NLS)

Para el caso de la Documentación:

  • Tratar de usar español neutro
  • Revisar el Glosario de Términos (y completarlo si encuentran una palabra que no esté registrada).
  • Tratar de usar términos cercanos a la palabra en inglés, o que su traducción sea muy conocida.
  • No traducir nombres propios (PostgreSQL = PostgreSQL)
  • Nunca traducir palabras del lenguaje SQL (Ej. SELECT), nombres de funciones incorporadas (ej now()), etc.
  • Traducir ejemplos en la medida de lo posible (nombres de tablas, campos, etc.)
  • Tratar de mantener coherencia con lo ya traducido
  • Respetar el tiempo verbal original (sobre todo la voz pasiva y tratar de usar pasiva refleja: se habilita... )
  • Tratar de eliminar algunas formas redundantes del inglés (por ej. no repetir el sujeto)
  • En caso de que la oración sea confusa y/o muy extensa, tratar de resumirla.
  • Respetar el formato original.
  • No agregar nuevas oraciones ni dividir los párrafos salvo que sea estrictamente necesario.

Glosario de términos

Estos son los términos que estamos usando:

  • aggregate: agregado
  • array: arreglo
  • assert: asegurar (assert)
  • autovacuum: vacío automático (autovacuum)
  • batch file: archivo de lote de comandos, secuencia de comandos
  • breakpoint: punto de interrupción
  • buffer: buffer
  • byte: byte, octeto
  • cache: cache
  • cascading: en cascada
  • case insensitive: no sensible a mayúsculas/minúsculas
  • cast: convertir
  • character: carácter
  • clause: clausula
  • cluster (de base de datos): conjunto, clúster, grupo,
  • cluster (de la orden cluster): reordenar
  • collation: colación
  • commit: comprometer (commit), confirmar, comitear
  • command: comando, orden
  • command prompt: linea de comando, simbolo del sistema
  • compute: computar
  • computer: computadora
  • conforms: se ajusta
  • constraint: restricción
  • contrib: contribuidos, contrib
  • copyright: copyright, derechos legales, derechos de autor
  • count: cantidad, cuenta
  • custom: personalizado
  • daemon: demonio (daemon)
  • data: datos
  • database-wide: toda la base de datos
  • default: por defecto, predeterminado (the default: lo predeterminado)
  • defer: diferir, postergar
  • delete: eliminar
  • deprecated: depreciado, desechado, obsoleto
  • disable: deshabilitar
  • double-quoted: encerrado entre comillas dobles
  • driver: controlador, manejador
  • drop: eliminar, baja?
  • enable: habilitar
  • error-prone: propenso al error
  • failover: failover
  • fetch: traer
  • fillfactor: factor de relleno (fillfactor)
  • firing: disparo
  • floating-point numbers: números de punto flotante
  • foreing key: clave foránea
  • frame: marco
  • free space map: mapa de espacio libre (FSM)
  • full text search: búsqueda a/de texto completo
  • grant: otorgar
  • header files: archivos de cabecera
  • hint: consejo
  • host: anfitrión, equipo, cliente
  • ident: ident
  • indent: indentar ("sangrar")
  • include files: archivos de inclusión
  • insert: insertar
  • join: junta, combinación
  • keyword: palabra clave
  • kind: género
  • large objects: objetos grandes (LO)
  • line break: salto de línea
  • locale: configuración regional (locale)
  • lock: bloqueo
  • logfile: bitácora, archivo de registro
  • log in: iniciar sesión
  • match: coincidir
  • metadata: meta datos
  • namespace: espacio de nombre
  • operator class: clase de operadores
  • overflow: desborde
  • owner: propietario
  • ownership: propiedad
  • packing: empaquetado
  • parser: analizador sintáctico
  • parse: interpretar
  • performance: rendimiento
  • permission denied: permiso denegado
  • plugin: plugin, enchufable
  • populate: poblar
  • primary key: clave primaria
  • privilege: privilegio
  • query: consulta
  • random: aleatorio
  • release: liberación
  • reset: restablecer
  • return: devolver, retornar -returning-
  • revoke: revocar
  • rollback: vuelta atrás
  • row: fila, registro
  • rule: regla de reescritura
  • run: correr, ejecutar
  • savepoint: punto de retorno almacenamiento
  • scan: búsqueda
  • schema: esquema
  • script: guión, script
  • scratch pad: bloc apuntes
  • set: conjunto
  • setting: ajuste
  • setup: instalador
  • setof: conjunto
  • skip: ignorar
  • socket: socket
  • software: software
  • standard: estándar
  • statement: sentencia, órden
  • storage: almacenamiento
  • string: cadena
  • system-wide: de todo el sistema
  • tab: solapa
  • tag: etiqueta
  • tablespace: espacio de tabla
  • template: plantilla
  • template flag: bandera de plantilla
  • threshold: umbral
  • tip: recomendación
  • trigger: disparador
  • truncate: truncar
  • untrusted: desconfiado, no confiable, untrusted
  • update: actualizar, modificar?
  • vacuum: vaciar
  • window: ventana
  • wraparound: reciclo (wraparound)
  • workaround: arreglo provisorio

Si encuentran un término nuevo (generalmente técnico, de difícil o dudosa traducción), traducirlo, pero agregar dicha traducción a esta lista.

Esto facilita la revisión, ya que no hay que leer la traducción completa, simplemente si surge algún cambio, se soluciona facilmente en Pootle buscando el término en ingles y cambiando a la nueva traducción elegida.

Normas/Tareas/Roles

Pootle tiene varios tipos de usuarios (roles) / fomas de uso, resumiendo bastante habría que definir por lo menos lo siguiente:

  • Administradores: Suben y bajan los contenidos, preparan los archivos y pruebas, gestionan los permisos del resto de los usuarios, asignan tareas y metas, etc.
  • Traductores: Hacen el trabajo duro. Sugieren traducciones de las cadenas.
  • Revisores: Revisan las traducciones sugeridas (las aceptan o rechazan).
  • Testers: Esto no es parte de Pootle, pero sería bueno que alguien compare el producto final traducido con los originales como control de calidad.

Obviamente cualquiera puede tener más de un rol.

Para ver el listado completo de tareas (abiertos como tickets) ver:

Nota: para mantenerse informado sobre un ticket, completar el campo CC con el usuario o dirección de mail y presionar guardar. De este modo, nos llegarán notificaciones de cuando se modifiquen los tickets.

Proyectos

PgInstaller (Instalador en Windows):

El instalador de windows utiliza un formato xml especial ( Wix: Windows Installer XML) Desarrollamos scripts para transformar xml a pootle y viceversa. La traducción esta terminada e incorporada al intalador, igualmente son bienvenidas revisiones y sugerencias (mediante pootle).

OneClickInstaller (Instalador en un click):

Este instalador utiliza un formato de archivo especial lng de bitrock. También desarrollamos scripts para transformar xml a pootle y viceversa. La traducción esta terminada e incorporada al intalador, igualmente son bienvenidas revisiones y sugerencias (mediante pootle).

PgAdmin3 (Herramienta de Administración):

Esta herramienta utiliza gettext para la localización (archivos .mo), por lo que para traducir con pootle no hay que hacer transformaciones de ningún tipo. El sitio web (documentación) también se puede traducir por pootle. La traducción de los mensajes esta terminada e incorporada al intalador, igualmente son bienvenidas revisiones y sugerencias (mediante pootle). La traducción del sitio web (administración) esta en curso, colaboradores para la traducción son bienvenidos! También hay otros archivos fuente (ayudas, hints, etc.) que ya estan traducidos anteriormente.

Documentación Oficial

Actualmente se está traduciendo la documentación oficial en dos frentes:

  • Wiki: Un enfoque desestructurado, para tener una traducción a corto plazo de las secciones principales (tutorial, referencia sql, tipos de datos, funciones), y con la idea de mejorar la documentación con comentarios, nuevos ejemplos, resúmenes, etc.
  • Pootle: Un enfoque más conservador, respetando en alguna medida la estructura y formato original de los archivos fuentes (aunque igualmente no se traduce sobre los archivos fuente sgml originales).

Ambos enfoques tratan de que la traducción sea una tarea colaborativa, para que la mayor cantidad de personas puedan colaborar, obteniendo asi resultados más rápidamente y de mejor calidad. Si sabés ingles, ¡estas invitado!

A su vez, ambos enfoques pueden compartir textos traducidos entre si. ya que ambos formatos son similares (si bien es necesario un proceso manual para pasar de una herramienta a otra).

Temas técnicos:

La documentación oficial esta en formato SGML.

Para traducir en Wiki, se copia el SGML convertido a HTML (desde la página oficial de PostgreSQL) y este luego se convierte automáticamente a formato wiki simplificado (ver Instructivo). El formato wiki se convierte automáticamente a HTML y puede descargarse en múltiples formatos (TXT, HTML, PDF, etc.).

Para traducir por Pootle, es necesario convertir del formato SGML a .PO, se debe pasar por XML (formato intermedio), y luego extraer las cadenas, traducirlas, y actualizar los XML. Para traducir, ver Instructivo Para generar los archivos HTML y PDF, se utiliza el formato intermedio XML (DocBook?), reemplazando las cadenas traducidas con las herramientas de pootle. Luego hay que aplicar transformaciones XLST o jade (ver abajo)

La mayoria de estos pasos por el momento no estan automatizados, por lo que se debe solicitar la conversión a los formatos finales para comprobar la traducción por pootle. Por wiki no es necesario, ya que el editor wiki es WYSWYG: en el mimsmo momento que se traduce se ve el resultado final.

Con la traducción en Pootle, tener en cuenta que hay algunos términos que no deben traducirse, por formar parte de índices, vinculos, etc. (formato SGML). Por ello, es recomendable traducir revisando el SGML fuente original y el HTML final, para evitar traducir fraces o palabras que rompan dicho formato. Nuevamente, esto no es necesario con el formato wiki, ya que la indexación y vínculos se arman automáticamente.

Recomendaciones Generales

Revisar recomendaciones, guias de estilo y glosario (arriba). A su vez, a continuación se enlazan recomendaciones de otros proyectos que pueden ser útiles:

Pasar SGML a XML para POOTLE

Script provisto por alvherrera:

FILE=plpgsql.sgml
FILEXML=$(basename $FILE .sgml).xml
FILEPO=$(basename $FILE .sgml).po
( echo '<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
<!entity % version SYSTEM "version.sgml">
%version;
<!entity % filelist SYSTEM "filelist.sgml">
%filelist;
<!entity reference  SYSTEM "reference.sgml">
]> <book><part>' ; cat $FILE ; echo "</part></book>") | osx -D . -D /pgsql/build/84_rel/doc/src/sgml -x lower - | perl -p -e 's/\[(amp|copy|egrave|gt|lt|mdash|nbsp|ouml|pi|quot|uuml) *\]/\&\1;/g;' -e '$_ .= qq{<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">\n} if $. == 1;' | less > $FILEXML
xml2po $FILEXML > $FILEPO

Luego convertir a UTF8.

Mergear XML desde POOTLE y generar HTML

Pasos provisto por alvherrera:

xml2po -p /tmp/plpgsql.po plpgsql.xml > plpgsql-merged.xml
xsltproc --stringparam pg.version '8.5devel' /pgsql/source/00head/doc/src/sgml/stylesheet.xsl plpgsql-merged.xml

Generar PDF

Pasos provisto por alvherrera:

Un PDF del documento de plpgsql, usando openjade y pdfjadetex, tal como hace el Makefile para generar el PDF desde los SGML. Hay un problema con los tipos de letra que parece que se "quedan pegados", por ej. después de cambiar a cursiva o a tipo de ancho fijo, éste sigue hasta el final del párrafo en vez de volver al tipo normal. Este problema tiene que ver con que estoy compilando el capítulo de plpgsql individualmente en vez de la documentación completo, así que por favor ignórenlo. Igualmente con el hecho de que no aparecen los títulos, etc. (Si realmente quisiéramos generar manuales en PDF separados de cada cosa, se podría hacer con un poco más de trabajo; lo que pretendo en este momento es justificar que la traducción por Pootle es viable para generar todos los tipos de salida que queramos).

openjade -D /pgsql/source/84_rel/doc/src/sgml -D /pgsql/build/84_rel/doc/src/sgml -d /pgsql/source/84_rel/doc/src/sgml/stylesheet.dsl -t tex -V tex-backend -i output-print -V texpdf-output -V '%paper-type%'=A4 -o plpgsql-A4.tex-pdf /pgsql/source/84_rel/doc/src/sgml/plpgsql.es.xml
iconv -f utf8 -t 'latin1//IGNORE' plpgsql-A4.tex-pdf > plpgsql-A4.latin1.tex-pdf
pdfjadetex plpgsql-A4.latin1.tex-pdf

Cualquier consulta, dirigirse a la lista de correo ArPug o Fomento (ver Soporte).