Finalmente he conseguido hacer el diccionario sin errores, o al menos que el script no muestre una salida con errores.
Tan sólo hay que seguir las instrucciones del autor, pero, aunque parezca tan obvio, no lo había hecho.
Todo está en la web del script:
http://www.albertopettarin.it/penelope.html
Para llevarlo a cabo he necesitado hacer:
- Conseguir MARISA: Matching Algorithm with Recursively Implemented StorAge (MARISA) que es el algoritmo que permite leer y crear los diccionarios kobo. Pero en una versión compilada para windows. Se puede conseguir de aquí. O desde su hilo en mobileread.
Se descarga y descomprime por ejemplo dentro de la carpeta de penelope.
- Editar el archivo penelope.py (si usamos Phyton 2) o penelope3.py (si usamos Python 3) cambiando los valores de las variables MARISA_BUILD_PATH y MARISA_REVERSE_LOOKUP_PATH.
Os muestro como lo tengo yo para que sirva de ejemplo:
Código:
MARISA_BUILD_PATH="C:\penelope120dictzip-marisa\marisa\marisa-build.exe"
MARISA_REVERSE_LOOKUP_PATH="C:\penelope120dictzip-marisa\marisa\marisa-reverse-lookup.exe
- Y dictzip que he recogido de la aplicación DictUI. El archivo a descargar es dictui-0.1.0-bin.7z. De ese archivo he extraído a la carpeta de penelope, el ejecutable "dictzip.exe" (y le he añadido las librerías "cygwin1.dll" y "cygz.dll" por si fueran necesarias). Si no tiene dictzip, lo deja decomprimido.
Si alguien lo quiere todo junto, lo he puesto en éste archivo. Tan sólo habría que modificar los valores de las variables de marisa. Yo lo he dejado para descomprimirlo sobre C:\ y funcionar, pero si lo descargáis, revisarlo sería lo mejor.
Pues bien una vez con todo eso, en la carpeta que tengamos el
penelope, copiamos también el archivo del diccionario a convertir. En mi caso el miniDRAE de Norishen, un diccionario stardict con tres archivos: drae.dict. drae.ifo y drae.idx
Abro un terminal (cmd) y ejecuto la siguiente instrucción:
penelope.py -p drae -f es -t es --output-kobo
siguiendo la ayuda de la
web tenemos lo que es cada argumento:
Ahora bien, no encontrado referencia alguna a los código de lengua. Ese ISO 631-2, según he leído por
aquí, debe ser un error, ya que el standard correcto sería el
ISO 639-2. Por tanto el código para español podría ser "spa", "esl" o simplemente "es". Aunque tampoco lo sé seguro. Ahora he visto abajo en la web, que tienen un enlace también al standard correcto.
La cuestión de todo este rollo, es que el diccionario lo crea correctamente, pero cuando lo abres, encuentras archivos html con nombres y caracteres extraños, que no sé si funcionarán bien y no sé a qué se deben.
Por tanto pensaba yo que si sería a causa de que ese código no estuviera bien puesto; o quizá dependa del diccionario en sí, y no tanto del código, porque si le pongo "en" de inglés, me lo deja igual.
La única manera que se me ocurre de corregirlo es hacerlo manualmente. Cambiar cada nombre de archivo mal por otro con tilde, que sería lo correcto. Porque eso aparentemente es lo que falla. Pero no dónde, si en el script, si en python, o quizá en
marisa. Podría ser ese compilado de
marisa el que no tire bien.
Bueno, que dejo los archivos convertidos para que quien lo desee, pueda verlo, probarlo o lo que sea:
miniDRAEbyNorishen4Kobo.7z
Y por hoy no pierdo más tiempo.
PD: Es muy curioso el encabezamiento del que creo es el índice del diccionario (archivo
words): pone exactamente "We love Marisa". Curioso.