Traducir automáticamente ficheros .po

Posted: febrero 22nd, 2010 | Author: | Filed under: General | Tags: , , , , | 10 Comments »

Ultimamente estoy dedicando parte de mi tiempo libre a algunos trabajos relacionados con la traducción. En concreto he portado a windows la última versión del software de traducción gtranslator y estoy participando en un proyecto para traducir de forma colaborativa al gallego el libro Producing Open Source Software.

Uno de los aspectos interesantes del proyecto poss-gl es que estamos usando una metodología propia de la traducción de software para un libro, con bastante buen resultado. Cada capítulo del libro se ha convertido en un fichero .po, que son los ficheros estándar de traducción en Software Libre. De este modo en lugar de ir traduciendo cada línea con un procesador de texto podemos emplear una herramienta avanzada como gtranslator para ello. Una de las características de gtranslator es que se puede visualizar además del texto original el contenido de otro fichero .po que contenga por ejemplo la traducción a un tercer idioma que nos sirva para comparar como han hecho otros traductores.

Basándome en esa posibilidad acabo de escribir un programita que permite traducir automaticamente un fichero po haciendo consultas a un servicio de traducción web. Las traducciones automáticas, a no ser que sean entre lenguas similares como castellano y gallego, son bastante malas pero, cargándolas como idioma alternativo en gtranslator pueden sernos de ayuda en nuestra propia traducción.

El programa se trata de un script programado en python y liberado con licencia GPL v3 que podeis descargar directamente desde mi repositorio de software. Para que funcione es necesario instalar también los módulos de python polib y BeautifulSoup.

Para ejecutarlo escribiremos en una consola de linux:

python translatePO.py -d [dirección] -i [fichero.po]

La dirección indica de que idioma a que idioma queremos traducirlo, por ejemplo en-es para traducir de inglés a castellano o gl-fr para hacerlo de gallego a francés.


10 Comments on “Traducir automáticamente ficheros .po”

  1. 1 adolfo said at 0:05 on agosto 27th, 2010:

    hola, tengo todo instaldo, perono consigo que me abra el archivo, el archivo lo tengo guardado en la carpeta personal junto con el escrip trabslatePO.py

  2. 2 fpuga said at 10:26 on agosto 27th, 2010:

    Se trata de un script que debes ejecutar desde una consola de Linux. Tienes que hacer cd al directorio donde los tengas y luego escribir lo de:

    python translatePO.py -d [dirección] -i [fichero.po]

    Tienes que substituir [fichero.po] por el nombre de tu fichero y [dirección] por como lo quieras traducir. Si te sale algún error por pantalla mándame un correo a:

    fran.puga (arroba) gmail.com

    con el error que te salga

  3. 3 Javi said at 14:28 on julio 20th, 2011:

    Hola fran:
    Me ha gustado mucho tu idea y no he podido resistirme en instalarlo, lo he hecho sobre una máquina con WindowsXP SP3 y python 2.7.2 y me sale todo este error:

    Traceback (most recent call last):
    File “localizacion_translatePO.py”, line 226, in
    main(sys.argv[1:])
    File “localizacion_translatePO.py”, line 213, in main
    page = urllib2.urlopen(engine.url,urllib.urlencode(engine.query))
    File “C:Python27liburllib2.py”, line 126, in urlopen
    return _opener.open(url, data, timeout)
    File “C:Python27liburllib2.py”, line 400, in open
    response = meth(req, response)
    File “C:Python27liburllib2.py”, line 513, in http_response
    ‘http’, request, response, code, msg, hdrs)
    File “C:Python27liburllib2.py”, line 438, in error
    return self._call_chain(*args)
    File “C:Python27liburllib2.py”, line 372, in _call_chain
    result = func(*args)
    File “C:Python27liburllib2.py”, line 521, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
    urllib2.HTTPError: HTTP Error 500: Internal Server Error

    alguna idea?
    Gracias

  4. 4 fpuga said at 11:06 on julio 21st, 2011:

    Tienes razón, no está funcionando porque han cambiado algunas cosas en el motor de traducción que usaba el script

    http://www.opentrad.com/

    El fin de semana intentó arreglarlo.

  5. 5 fpuga said at 11:58 on julio 23rd, 2011:

    He hecho un commit que arregla parte del problema pero no todo. Lo que sucede es que en la línea

    page = urllib2.urlopen(engine.url,urllib.urlencode(engine.query))

    No se está recuperando adecuadamente la página web, se queda cortada donde empiezan las etiquetas html de y no carga el resto.

    Lo siento pero ahora no le puedo dedicar más tiempo, pero se admiten parches :/

  6. 6 Javi said at 12:11 on julio 26th, 2011:

    ok gracias, a ver q puedo hacer… mis conocimientos de python son de -1.. xD

    un saludo

  7. 7 pimpam said at 17:39 on septiembre 13th, 2011:

    Hace poco que empezé con python pero mira , me ha enganchado fuerte.

    Quiero saber como haces en python para crear un traductor, ya que tengo en mente hacer un traductor español-ingles, catalàn-ingles.

    Y próximamente quiero hacer un diccionario que enlace con la página de la rae( como si fuera mediante scripting, pero algo más serio).

    Como ves tengo proyectos en mente que de por si , para mi no son faciles,pero con un poco de empeño y ayuda creo que lo conseguire

  8. 8 fpuga said at 19:14 on septiembre 13th, 2011:

    Desconozco lo del traductor en python, yo lo que hago es más bien lo que propones en lo de la RAE. Tiro con python contra servicios de traducción. Que yo sepa la RAE no dispone de una API así que lo que tendrás que hacer es mediante GET hacer las peticiones a la página y parsear el html devuelto. Dos enlaces que he contrado por ahí y que te pueden dar una pista:

    http://rae-quel.appspot.com/
    http://cosassencillas.wordpress.com/2007/01/05/nueva-forma-de-buscar-en-el-diccionario-rae-20/

  9. 9 Luis Miguel Delgado said at 9:42 on octubre 17th, 2012:

    Buenas,

    Ejecuto el archivo, con este comando:python translatePO.py -d en-es -i en_EN.po pero me sale este error:

    A problem was encountered opening de file, probably it doesn’t exist

    A que puede ser debido.

    Gracias.

  10. 10 fpuga said at 20:37 on noviembre 28th, 2012:

    Cree el script hace tiempo para una necesidad específica y no lo estoy manteniendo.

    Si puedes colgar el fichero en algún sitio intentó echarle un ojo pero no puedo prometer nada.

    Lo siento.


Leave a Reply