Cómo montar un diccionario inglés→español que funcione sin internet, directo desde la terminal con dict. Ligero (~5MB), sin procesos pesados, y con la lógica de “grep una palabra y te tira el significado” que buscabas.

El problema

Quería traducir palabras sueltas sin internet. Se me ocurrió instalar un traductor neuronal offline (argos-translate + torch) pero resultó excesivo: descarga ~1.5GB+ de dependencias (torch + CUDA de NVIDIA) solo por el bundle de traducción de frases. Para un simple diccionario palabra-por-palabra es un desperdicio enorme.

La solución clásica y minimalista: dictd + un diccionario FreeDict en→es.

Qué es dictd

dictd es el servidor/Cliente de diccionario de la RFC 2229, el estándar UNIX clásico. Trae:

  • dict — cliente de terminal
  • dictd — el daemon/servidor
  • dictfmt — herramientas para construir diccionarios

Instalación

Sistema: Arch Linux (pacman).

sudo pacman -S dictd --noconfirm

Esto instala dictd, dict, dict_lookup, dictfmt, etc.

Descargar el diccionario en→es

Los diccionarios bilingües (~64.000 entradas) vienen de FreeDict en formato dictd. En Arch oficial no hay paquete para el en-es (solo correctores aspell/hunspell, que no traducen), así que se descarga manualmente.

# Crear dir con permisos de escritura para tu usuario
# (yo uso /mnt/arch porque es donde tengo espacio)
sudo mkdir -p /mnt/arch/dicts && sudo chown $USER:users /mnt/arch/dicts

cd /mnt/arch/dicts
curl -LO "https://download.freedict.org/dictionaries/eng-spa/2025.11.23/freedict-eng-spa-2025.11.23.dictd.tar.xz"
tar -xJf freedict-eng-spa-2025.11.23.dictd.tar.xz

Esto deja dos archivos clave en eng-spa/:

  • eng-spa.dict.dz — los artículos comprimidos
  • eng-spa.index — índice palabra→offset

Configurar dictd

Agregá la base de datos al config (/etc/dict/dictd.conf), antes de #LASTLINE:

sudo cp /etc/dict/dictd.conf /etc/dict/dictd.conf.bak  # backup

sudo sed -i 's|#LASTLINE|database eng-spa { data "/mnt/arch/dicts/eng-spa/eng-spa.dict.dz" index "/mnt/arch/dicts/eng-spa/eng-spa.index" }\n#LASTLINE|' /etc/dict/dictd.conf

Arrancar el servicio

sudo systemctl start dictd
sudo systemctl enable dictd   # para que arranque solo al boot

Uso

dict hello
# 1. hola, buenas tardes, buenos días, qué tal

dict dog
# 1. perro, can, pichicho, tuso

dict house
# 1. casalicio, casa

Devuelve la pronunciación, la categoría gramatical y todas las traducciones con contexto. Todo local, cero internet, cero telemetría.

Alternativa sin daemon (grep directo)

Si no querés correr un servicio, el .index ya es un archivo de texto plano con el formato palabra\toffset\tlongitud:

grep -i "^hello" /mnt/arch/dicts/eng-spa/eng-spa.index

El diccionario de texto descomprimido se puede extraer con dictunformat para hacer grep directo sobre las definiciones. Pero dict es más cómodo.

Por qué no usar un traductor neuronal

Para traducir frases completas con gramática sí amerita un modelo tipo marian/argos. Para mirar el significado de una palabra suelta:

Opción Tamaño Sirve para
dictd + FreeDict ~5MB Palabras sueltas, grep
argos-translate + torch ~1.5GB+ Frases, gramática

Si tu uso es “¿qué significa esta palabra?”, quedate con dictd. Es la filosofía Unix: una herramienta chica que hace una sola cosa bien.