gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

⎇ main recipes/incoming-gnome/hunspell-es.toml TOML · 61 líneas · 3.8 KB Historia crudo

el corrector habla castellano: 23 variantes, y los diccionarios pasan a ser deps de RUNTIME ac3a2afc4 · Sergio ·

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