Generar diccionario corrector - sbosio/rla-es GitHub Wiki
Este instructivo está escrito para sistemas operativos GNU/Linux, dado que las herramientas son scripts escritos en Bash.
El público objetivo son los miembros del equipo de desarrollo y cualquier persona que desee participar directamente en los detalles técnicos del mantenimiento de los diccionarios.
Para empezar a trabajar necesitas una copia local del repositorio de trabajo del proyecto:
git clone https://github.com/sbosio/rla-es.git
Si ya tienes una copia local debes asegurarte de estar a la última versión y no tener cambios propios pendientes:
cd rla-es
git fetch
git checkout master
git pull
La herramienta básica es el script bash herramientas/make_dict.sh
:
$ herramientas/make_dict.sh --ayuda
Sintaxis de la orden: herramientas/make_dict.sh [opciones]
Las opciones pueden ser las siguientes:
--listado-regiones
Muestra todas las regiones de las variantes del español
más importantes expresadas con su código CLDR.
--rae | -r
Incluir únicamente las palabras pertenecientes al
diccionario de la Real Academia Española.
--localizacion LOC | -l LOC
Crea un diccionario para la localización LOC.
El argumento LOC debe ser un código CLDR de localización
implementado (es_AR, es_ES, es_MX, etc). Cada diccionario
se produce dentro del directorio productos/ emapquetado en
forma de extensión de LibreOffice (oxt) y de Mozilla (xpi).
--configurar | -c
Asistente para configurar herramientas/make_dict.sh modificando
el contenido del fichero .versiones.cfg
--changelog | -C
Extrae de la actividad del repositorio git el resumen de cambios
de la última edición para usarlos en Changelog.txt.
--publicar-version | -P)
Asistente para la publicación de una versión oficial de RLA-ES.
--todas | -t
Generar diccionarios para todas las localizaciones registradas.
Igual que la anterior pero para todas las variantes LOC
--subir-a-LibreOffice | -L
Actualiza el repositorio de diccionarios de LibreOffice con la
última versión de los productos del proyecto.
Debe usarse después de haber generado todos los diccionarios con
la opcion --todas.
Con make_dict.sh se pueden generar todos los diccionarios del proyecto compatibles con hunspell y empaquetados para LibreOffice, productos Mozilla y aplicaciones compatibles con estos.
Configuración
make_dict.sh necesita de una pequeña configuración, en el fichero .versiones.cfg
que tendrá un contenido parecido a:
# asignación de variables en lenguaje shell de Bash
#
# CORRECTOR, versión de la edición actual del corrector ortográfico
CORRECTOR="2.8"
# SEPARACION, versión de la edición actual del patrón de silabeo
SEPARACION="0.2"
# SINONIMOS, versión de la edición actual del patrón de silabeo
SINONIMOS="24/02/2013"
# LO_DICTIONARIES_GIT, ruta a la copia local de https://gerrit.libreoffice.org/admin/repos/dictionaries
LO_DICTIONARIES_GIT="/home/olea/git/libreoffice-dictionaries/dictionaries/"
Las variables CORRECTOR
, SEPARACION
, SINONIMOS
son necesarias porque son productos con orígenes diferentes y acarrean su propia nomenclatura de versiones.
La variable LO_DICTIONARIES_GIT
sólo es necesaria para mandar contribuciones al repositorio de diccionarios de LibreOffice. Si sólo quieres colaborar internamente con RLA-ES no necesitas configurarla.
Puedes crear el fichero .versiones.cfg
con la orden herramientas/make_dict.sh --configurar
.
Generación del diccionario
Nuestro corrector ortográfico está disponible para cada código CLDR del español. Para conocer los códigos:
$ herramientas/make_dict.sh --listado-regiones
Códigos CLDR de las variantes del español contempladas:
es es_AR es_BO es_CL es_CO es_CR es_CU es_DO es_EC es_ES es_GQ es_GT es_HN es_MX es_NI es_PA es_PE es_PH es_PR es_PY es_SV es_US es_UY es_VE
En función de las opciones elegidas la herramienta puede elegir una variante particular o todas. En cualquier caso siempre creará ambos empaquetados OXT (LibreOffice y compatibles) XPI (Mozilla y compatibles). La única diferencia importante entre ambos formatos es que el paquete OXT también incluye reglas de separación silábica y sinónimos. Los productos creados estarán disponible en la carpeta productos/
.
Ejemplo de creación de un sólo diccionario
Creación del diccionario para México (es_MX):
$ herramientas/make_dict.sh --localizacion es_MX
La configuración actual del proyecto en el fichero .versiones.cfg:
Corrector: 2.8
Separación: 0.2
Sinónimos: 24/02/2013
Repositorio «dictionaries» de LibreOffice: /home/olea/git/libreoffice-dictionaries/dictionaries/
¿La configuración es correcta? (s/n): s
Creando un diccionario para la localización 'es_MX'...
Creando el fichero de afijos:
¡listo!
Creando la lista de lemas etiquetados... ¡listo!
Creando /home/olea/git/rla-es/productos/es_MX.oxt ¡listo!
Creando /home/olea/git/rla-es/productos/es_MX.xpi ¡listo!
Proceso finalizado.
Los dos ficheros están disponibles en la carpeta productos/
.
Creación de todos los diccionarios
Sencillamente:
herramientas/make_dict.sh --todas
Y, de nuevo, todos los ficheros estarán disponibles en productos/
.
Cómo probar un diccionario
Durante el desarrollo nos interesa comprobar que los diccionarios funcionan según lo esperado. Una aproximación puede ser instalar la extensión en LibreOffice y comprobar en un documento el comportamiento del corrector. Otra aproximación es hacerlo directamente en la línea de órdenes con la herramienta hunspell
.
Primero hay que extraer el diccionario para que pueda ser manejado por hunspell
:
unzip productos/es_MX.xpi *aff *dic -d tmp
Después preparamos un fichero de texto puro, con cualquier editor, que contenga las palabras o textos a usar en la prueba y que puede llamarse, por ejemplo, prueba.txt
.
hunspell -d tmp/dictionaries/es-MX -l prueba.txt
Así invocado, hunspell sólo devolverá las palabras que no reconozca en el diccionario elegido. El procedimiento puede aplicarse a cualquier variante idiomática.
También podemos hacer consultas interactivas, en las que hunspell también mostrará información y sugerencias relacionados:
hunspell -d tmp/dictionaries/es-MX
Ejemplo de sesión de publicación de nueva edición de los diccionarios
Más allá del caso de ser un colaborador interno del proyecto, así sería una sesión de publicación oficial de los diccionarios RLA-ES. Realmente sólo es de utilidad para el equipo de mantenimiento del proyecto.
# antes, actualizar el número de versión en .versiones.cfg
herramientas/make_dict.sh --changelog
# actualizar a mano Changelog.txt
herramientas/make_dict.sh --publicar-version
herramientas/make_dict.sh --todas
# en Github creamos la nueva versión
herramientas/make_dict.sh --subir-a-LibreOffice
cd $RUTA_LIBREOFFICE/dictionaries/
git push origin hunspell-es-VERSION:refs/for/master