Diccionario de bolsillo

Desde hace algunos años, la mayoría de los teléfonos móviles en el mercado soportan Midlets, pequeños programas en Java (J2ME) que se popularizaron bastante en su momento, ya que parecía que por fin podríamos llevar un ordenador en el bolsillo a bajo precio e intercambiar programas libremente. Al poco tiempo, se empezó a notar que el procesador del móvil era poco potente, que los programas estaban adaptados a ciertas resoluciones de pantalla -no eran universales-, y que los programas de oficina eran muy incómodos de manejar en un disposito tan pequeño y con un teclado tan limitado. Por todo ello, los Midlets que han sobrevivido han sido casi exclusivamente juegos.

Y todo esto viene a cuento porque he redescubierto un tipo de aplicación perfecta para móviles: el diccionario. Hace aún más años, salieron al mercado unos dispositivos traductores, con un pequeño teclado y pantalla de tinta electrónica -muy parecidos a calculadoras-, que servían exclusivamente para esto: se introducía una palabra y automáticamente se mostraba la traducción en uno o varios idiomas.

Ahora es posible tener esta misma funcionalidad de forma gratuita. He probado dos proyectos de software libre, DictionaryForMIDs y MobiDict. De estos dos, me quedo con el segundo, básicamente porque permite hacer búsquedas parciales: basta introducir un par de letras para obtener un lista de palabras con sus traducciones. El primero tiene la ventaja de ser un proyecto más activo y tener diccionarios listos para usar, pero hay que introducir palabras completas en las búsquedas.

Trasteando con el MobiDict, he modificado ligeramente unos conversores de diccionarios y preparado un script para Ubuntu que se puede descargar aquí. Este script recibe un archivo de texto unicode (UTF-8) con dos columnas separadas por tabulador, cada línea conteniendo una palabra o expresión en un idioma y su equivalente en el otro. Ejemplo (parte de HunSpa.csv):

hegy montaña
hegyekbe megy(v) hace senderismo
tenger mar
óceán océano
fürdik(v) baña (se)
vitorlázik(v) navega en velero
hajózik(v) navega
hajó barco
változó variable ; cambiante
napozik(v) toma el sol
kikapcsolódás relajación
kikapcsol(v) apaga
bekapcsol(v) encender
kapcsoló interruptor
színű coloreado
milyen színű a...? de qué color es...?
asztal mesa
fal pared
szürke gris
füzet cuaderno
cípő zapato
piszkos sucio

El script es un Makefile y es muy simple:

 

  • Convierte el archivo de texto (e.g. HunSpa.csv) en un conjunto de archivos de índice. Este comando requiere una máquina virtual de java (sudo apt-get install sun-java6-jre).

 

 

  • Copia un diccionario vacío (MobiDict1.1.1.jar) al directorio de trabajo

 

 

  • Inserta los archivos de índice dentro del JAR. El formato JAR es simplemente un ZIP que incluye descripción. Este comando requiere la aplicación ZIP (sudo apt-get install zip).

 

# Makefile to generate MobiDict file from CSV files

DICT=HunSpa
#DICT=DeuSpa
DICT_PATH=dictionaries
DICT_FILE=$(DICT_PATH)/$(DICT).csv
EMPTY_MIDLET=MobiDict1.1.1
FINAL_MIDLET=build/$(EMPTY_MIDLET).$(DICT).jar

dict: $(DICT_FILE) build
java -jar tools/DictGenerator.jar $(DICT_FILE)
cp tools/$(EMPTY_MIDLET).jar $(FINAL_MIDLET)
zip -mDj $(FINAL_MIDLET) build/*.txt build/index.dat

build:
mkdir build

Para ejecutar este Makefile, basta abrir la consola en el directorio donde se haya descomprimido el script y escribir el comando:

make dict

Estos pasos también se pueden ejecutar, uno tras otro, en la consola:

java -jar tools/DictGenerator.jar dictionaries/HunSpa.csv
cp tools/MobiDict1.1.1.jar build/MobiDict1.1.1.HunSpa.jar
zip -mDj build/MobiDict1.1.1.HunSpa.jar build/*.txt build/index.dat

Al final de este proceso, tendremos un archivo JAR -por ejemplo, MobiDict1.1.1.HunSpa.jar- que podremos copiar directamente a la tarjeta SD de nuestro móvil. Algunos móviles exigen también un archivo JAD, que es una descripción del Midlet. Este archivo se puede generar muy fácilmente usando el siguiente comando:

jadmaker --force build/MobiDict1.1.1.HunSpa.jar

Esta aplicación pertenece a la librería Gammuy se puede instalar con:

sudo apt-get install gammu

Finalmente, aquí está el diccionario funcionando en un Nokia 6300:
Diccionario en el teléfono móvil

He de aclarar que me he encontrado teléfonos -por ejemplo, el Samsung U800- que, a pesar de que aseguran que soportan J2ME, no permiten la instalación de archivos JAR directamente copiándolos en la tarjeta de memoria, sino que requieren descargarlo por WAP, usar programas propios que sólo están disponibles para Windows u otros métodos oscuros, supongo que para obligar a sus clientes a pasar por caja.

Por último pero muy importante: para añadir otros idiomas, basta con crear nuevos archivos de texto con el formato descrito anteriormente. Yo prefiero escribirlos personalmente, para así memorizar las palabras, pero también es posible descargar estos archivos directamente de webs de diccionarios libres: Internet Dictionary Project, FreeDict o Universal Dictionary.