Traducir automáticamente ficheros .po

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.

Comentarios

adolfo dice:

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

fpuga dice:

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

Javi dice:

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

fpuga dice:

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.

fpuga dice:

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 :/

Javi dice:

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

un saludo

pimpam dice:

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

fpuga dice:

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/

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.

fpuga dice:

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.

Deja una respuesta