# hunspell-es — los diccionarios de CASTELLANO para hunspell. Datos, no código. # # ── POR QUÉ ES UNA RECETA APARTE Y NO UNA LÍNEA EN `hunspell-en` ─────────────────────────────── # El encabezado de `hunspell-en.toml` decía que añadir otro idioma «es UNA LÍNEA en el install», # y técnicamente lo es — pero un paquete llamado `hunspell-en` que instala castellano es un nombre # que miente, y este repo ya tiene medido lo que cuesta eso ([[la-etiqueta-no-es-el-hecho]]). # Misma fuente, mismo sha256, otro paquete: el fetcher cachea el tarball por URL+sha, así que los # 110 MB se bajan UNA vez para los dos (y para los ~88 idiomas que queden por venir). # # ── LAS 23 VARIANTES, Y POR QUÉ VAN TODAS ───────────────────────────────────────────────────── # El castellano no viene como un fichero: el proyecto RLA-ES publica una variante por país —es_ES, # es_MX, es_AR, es_PE, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EC, es_GQ, es_GT, es_HN, es_NI, # es_PA, es_PH, es_PR, es_PY, es_SV, es_US, es_UY, es_VE— que se diferencian en regionalismos sobre # un tronco común. **Cuestan 20 MB en total** (~880 KB cada una: 715 KB de `.dic` y 169 KB de # `.aff`), sobre una imagen de escritorio de ~10,8 G ⇒ 0,18 %. # # Van las 23 a propósito, y la alternativa se consideró: elegir una o dos es elegir el país del # usuario, y equivocarse ahí se nota en cada palabra subrayada que no debería estarlo. `enchant` # escoge la variante por el locale (`es_PE`, `es_MX`…) y cae a la genérica si la exacta no está, así # que traerlas todas es lo que hace que el corrector funcione sin configurar nada. # ⚠ Recortarlo es UNA LÍNEA: cambiar el glob `es_*` de abajo por los códigos que se quieran. Si # algún día 20 MB pesan —en una imagen mínima, por ejemplo— ése es el sitio. # # ── LO QUE NO SE INSTALA, Y NO ES OLVIDO ────────────────────────────────────────────────────── # El directorio `es/` del tarball trae también `hyph_es.dic` (guionado) y `th_es_v2.dat` (tesauro # MyThes). **Hunspell no lee ninguno de los dos**: el guionado es de `libhyphen` y el tesauro de # `libmythes`, dos librerías que no están en el catálogo y que nadie pide todavía. Instalarlos en # `/usr/share/hunspell` sería poner ficheros donde nada los va a buscar. # # ⚠ EL DIRECTORIO IMPORTA: `enchant` busca en `${datadir}/hunspell` (su `ENCHANT_HUNSPELL_DICT_DIR`). # Un diccionario en el sitio equivocado es indistinguible de uno que no está. name = "hunspell-es" version = "25.2.5.2" license = "GPL-3.0-only OR LGPL-3.0-only OR MPL-1.1" [source] tarball = "https://github.com/LibreOffice/dictionaries/archive/refs/tags/libreoffice-25.2.5.2.tar.gz" sha256 = "cb9f172aae04efec384dd7193109b2d99852d825d70ad85d12c69639045c3ba6" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "dynamic" [build.phases] configure = "true" compile = "true" install = ''' set -e mkdir -p /out/usr/share/hunspell /out/usr/share/licenses/hunspell-es cp -a es/es_*.aff es/es_*.dic /out/usr/share/hunspell/ cp -a es/README_hunspell_es.txt es/LICENSE.md es/GPLv3.txt es/LGPLv3.txt es/MPL-1.1.txt /out/usr/share/licenses/hunspell-es/ # Regla 3 del repo: un diccionario vacío es un diccionario que no está. Se comprueba que haya las # 23 variantes Y que la de referencia traiga palabras de verdad — no sólo que el fichero exista. test "$(ls /out/usr/share/hunspell/es_*.dic | wc -l)" -eq 23 test "$(wc -l < /out/usr/share/hunspell/es_ES.dic)" -gt 10000 grep -q '^ñandú' /out/usr/share/hunspell/es_ES.dic ''' [deps] build = []