« Go to homepage

Índice de contenido

  1. Introducción:
  2. Definición del Problema (Especificaciones Externas)
    1. Objetivos
      1. Objetivo General:
      2. Objetivos Específicos:
    2. Entrada:
    3. Salida o resultado esperado:
    4. Diagrama Lógico: Diagrama de Flujo de Datos(DFD)
           Nivel 0: Diagrama de Contexto
           Diagrama Nivel I
  3. Diseño:
    1. Descripción de datos:
    2. Arquitectura (especificaciones internas):
    3. Gráfica del proceso de traducción:
    4. Revisión del flujo de datos: ¿Cómo se integran cada uno de los componentes?
    5. Diagrama de Flujos Físico (DF)
      1. Proceso General de la Traducción
      2. Proceso Script PERL
  4. Características Soportadas actualmente:
  5. Implementación (en preparación)
  6. Apéndice
    1. Glosario:

I. INTRODUCCION

FUNREDES es un Organismo No Gubernamental Internacional, dedicado a la difusión de las Tecnologías de la Información y de la Comunicación (TIC) en los países en desarrollo, en particular en América Latina y el Caribe. Esto en colaboración con los Organismos Internacionales, ONG, los Estados, las Administraciones y las Instituciones públicas o privadas interesadas, con el objetivo de contribuir al desarrollo e integración regional.[1]

Como parte de sus proyectos e infraestructura tecnológica, dispone de listas de correos para comunicación entre los miembros de Funredes y de cada uno de los proyectos que allí convergen.

En este sentido es que se desarrolla este proyecto de Traducción automática de Listas de correos en Funredes.

Uno de los proyectos claves de Funredes es Mistica (http:/www.funredes.org/mistica), el cual potencia una comunidad virtual, las personas que están inscritas en esta lista tienen diversas lenguas natales y prefieren escribir a las listas en sus idiomas de origen.

Las personas se sienten más cómodas enviando y leyendo los mensajes de la comunidad virtual en su idioma natal.

Desde hace un tiempo los mensajes enviados a la lista de correos de [email protected], son traducidos a cuatro idiomas (inglés, francés, portugués y español), de manera automática utilizando el Globalink y enviadas las traducciones a la lista [email protected].

Pero este proceso se realiza de forma manual. O sea los moderadores reciben los correos y con copy-paste, proceden a traducir el mensaje de correo a cada uno de los idiomas y posteriormente a depurar la traducción realizada por el Globalink, para así proceder a remitir el mensaje a [email protected].

Con el tiempo este proceso se ha convertido en algo tedioso para los moderadores y pretende con automatizar aún más la tarea de traducción automática.

De ahí que se hace necesario un mecanismo que nos permita traducir automáticamente los correos a diferentes lenguajes de las personas miembros de la comunidad virtual.

En la primera etapa el proceso de traducción automática de CV Mistica está utilizando traducción en línea gratuita de Babel Fish. Lo que nos ha traído problemas, tales como:
  • Si Babel Fish, cambia de código o secuencia, nos vemos en peligro de quedar sin servicio y proceder de inmediato a cambiar el código nuestro.
  • Sí Babel Fish, está fuera de servicio quedamos sin servicio de traducción sin previo aviso.
  • No podemos ofrecer nuestro servicio de traducción de correo electrónico a terceros.
  • El servicio de Babel Fish no se puede personalizar a nuestra medida.

En este sentido decidimos implementar el mismo servicio que nos ofrece Babel Fish, pero utilizando un programa de traducción desde nuestro servidor, en este caso utilizamos a Globalink y tratamos de automatizarlo a la manera de Babel Fish.

Pero nos enfrentamos con el inconveniente de que Globalink es un programa para la plataforma Windows y los procesos del servidor están en una plataforma Linux. En transcurso de las pruebas sucedieron múltiples inconvenientes al tratar de sincronizar el servidor Linux con la Pc con Windows. Así que decidimos al modelo anterior utilizando traductores gratuitos en línea como Babel, pero en este caso Systran, y los problemas que acarrea esa decisión.

Los constantes cambios en las políticas de Systran, hicieron que volviéramos a BabelFish, pero el sistema está preparado para ya, para conmutar entre diferentes servicios de traducción.

II. Definicion del problema

1. Objetivos

    3.1.1 Objetivo General:
Lograr que los mensajes de [email protected] estén traducidos automáticamente en otra lista a 3 idiomas diferentes al original.

    3.1.2 Objetivos Específicos:
Utilizar traductores automáticos gratuitos en líneas desde el servidor Linux.

2. Entrada:

Como entrada se recibe del manejador de lista un correo escrito en alguno de los siguientes idiomas: inglés, francés, portugués y español. Mistica utiliza como manejador de listas a majordomo en el Sistema operativo Linux.

3. Salida o resultado esperado:

Se requiere como resultado final un correo electrónico en su idioma original y traducción a idiomas restantes, enviado a las personas suscritas en la lista.

4. Esquema del proceso Actual:


El proceso de traducción automática, nos permite enviar un correo a la lista y de forma automática una vez que el moderador ha aprobado el mensaje, el manejador de la lista (actualmente majordomo, o el mailman) ejecuta un programa, que se encarga de traducir a 3 idiomas el mensaje original.

5. Diagrama Lógico: Diagrama de Flujo de Datos(DFD)


III. Diseño

1. Descripción de datos:

El proceso de traducción automática, nos permite enviar un correo a la lista y de forma automática una vez que el moderador ha aprobado el mensaje, el manejador de la lista (actualmente majordomo) ejecuta un programa (o script en PERL), que se encarga de traducir a 3 idiomas el mensaje original.

El mensaje es enviado de la lista [email protected] a la cuenta de correo traducion@funredes., que tiene asignada unas reglas (procmail) que envían el mensaje a una cola (maildir). Se ejecuta periódicamente un cron que llama un script realizado en perl que traduce el mensaje y reenvía el mensaje traducido a la lista traducida [email protected].

Idiomas Soportados:
  • Inglés
  • Francés
  • Portugués
  • Español

2. Arquitectura (especificaciones Internas):

El programa que realiza la traducción automática utilizando servicios de traducción gratuitos (BabelFish, Systran, Google), está realizado en Perl, para ser ejecutado en un servidor Linux con un manejador de listas, tal como majordomo o mailman.

El usuario [email protected], está suscrito a la lista [email protected] y por ende recibe los correos de ella. Utilizando ProcMail aplicamos reglas sobre los mensajes recibidos en [email protected], se determina si el mensaje es de [email protected] y si es afirmativo envía una copia del mensaje a un directorio de correo (maildir) para que realice la función de cola. Luego es ejecutado un cron periódicamente que revisa si hay mensajes en la cola y llama al script realizado en Perl que se encarga de traducir el mensaje a 3 idiomas, a partir del idioma original y enviarlo a la lista [email protected]

Durante el proceso el script en Perl envía una copia del cuerpo del mensaje a TextCat, utilidad que nos permite detectar el idioma en que está escrito el mensaje y de ahí proceder a traducir el mensaje.



3. Gráfica del proceso de traducción:

Requisitos:
  • Perl
  • Servidor de Listas de Correos (Majordomo o Mailman)
  • Sendmail de Linux
  • ProcMail Linux
  • TextCat (Programa que identifica el idioma)

4. Revisión del flujo de datos: ¿Cómo se integran cada uno de los componentes?

  1. Primeramente el servidor de listas de correos recibe el mensaje enviado a [email protected], y lo envía al moderador para que sea aprobado.

  2. Una vez que el mensaje es aprobado, es enviado a los usuarios de la lista. Uno de ellos es [email protected].

  3. [email protected], tiene un archivo .forward que envía los mensajes recibidos a Procmail (programa que aplica reglas para filtrar mensajes en Linux). Las reglas se aplican en el archivo .procmailrc.

  4. El procmail filtra los mensajes de [email protected], y los envía al maildir ó directorio conteniendo los mensajes en cola para ser traducidos.

  5. Se ejecuta un proceso periódicamente (cron), que llama un script Perl automatic.pl.

  6. El Script en Perl automatic.pl, envía el cuerpo del mensaje al programa TextCat.

  7. TextCat, nos dice el idioma original del mensaje.

  8. Con la información de TextCat y el cuerpo del mensaje, el script Perl envía esos datos al servicio de traducción gratuito(ya sea BabelFish, Systran, u otro). Este proceso se repite para cada uno de los 3 idiomas restantes. Nota: Si el idioma es diferente al inglés primero se traduce el texto al inglés y después a los otros dos idiomas.

  9. Se reúnen las traducciones en un solo formato y se envía un correo a la lista de correos [email protected].

4. Diagrama de Flujos Físico (DF)

a. Proceso General de la Traducción



b. Proceso Script PERL



Opciones/lista Mistica Salsa Cardis Cardicis BOHIO

Post-moderaci�n X   X X  
Des-HTML   X X X X
Ante-moderaci�n   X     X
Lista separada X   X X  
Manejo adjunto (HTML / Texto)   X X X X
No moderado          
  • Post-Moderación: Indica que el mensaje será traducido luego de haber sido moderado.

  • Des-HTML: Indica que elimina el HTML del mensaje a traducir.

  • Ante-Moderación: El mensaje es traducido antes de moderar. En este caso [email protected], recibe un bounce con el mensaje original al igual que el moderador y luego envía un bounce al moderador con el mensaje traducido, aquí el moderador decide cual de los dos bounce aprobar del original o el traducido.

  • Lista separada: Indica que el producto de la traducción automática será enviado a otra lista diferente de la que generó el mensaje original.

  • Manejo de Adjuntos: Actualmente se el mensaje contiene un archivo el proceso separa el adjunto del mensaje, y si el adjunto está en formato de texto puro o Html lo procesa y lo traduce. En caso de otros formatos los ignora.

  • No Moderado: Es cuando la lista no está siendo moderada.

Módulo: automatic.pl
  1. Texto explicativo
  2. Descripción de la interfaz
  3. Descripción en lenguaje de diseño
  4. Módulos usados
  5. Organización de los datos
  6. Comentarios

VI. Apendice

1. Glosario

Babel Fish: traductor en línea que utiliza la tecnología se Systran.

Globalink: Programa que nos traduce el contenido de las páginas web, es uno de los más usados.

Google: buscado web, se basa en PageRank, en la exclusiva naturaleza democrática de la web y usa su extensa estructura de vínculos como un indicador del valor de una página individual. Google interpreta un vínculo desde la página A hacia la página B como un voto de la página A por la página B. Pero Google revisa otras cosas aparte del número de votos o de vínculos que una página recibe, puesto que también analiza la página que emite el voto. Los votos emitidos por páginas que son en sí mismas "importantes" pesan más y ayudan a convertir a otras páginas también en "importantes".

Ispell: es un programa revisor de la ortografía orientado a pantalla rápido, y sugiere correcciones posibles cuando puede calcularlas hacia fuera. Comparado al encanto de UNIX, es más rápidamente y mucho más fácil utilizar.

Lista de Correos: Es una herramienta súper-poderosa, donde puedes intercambiar información, opiniones con dos o más personas que estén subscritas a ellas; estas listas de correos son muy utilizadas para discutir determinados temas (por ejemplo hay listas que están dedicadas a solo un tema en especifico, como programación, juegos, sistemas operativos, etc.

PHP: El lenguaje PHP es un lenguaje de programación de estilo clásico, esto quiere decir que es un lenguaje de programación con variables, sentencias condicionales, bucles, funciones.... No es un lenguaje de marcas como podría ser HTML, XML o WML. Está mas cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.

Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML.

FOOTNOTES:

[1] Descripción de Funredes. Recuperado el 8 de septiembre, 2003 de http://www.funredes.org, República, Dominicana.