sbosio / rla-es

Recursos lingüísticos abiertos del español
Other
220 stars 49 forks source link

Separar diccionario según país #176

Closed simonbcn closed 6 years ago

simonbcn commented 6 years ago

No sé si esto depende de este proyecto, de hunspell o de las distros Linux. Yo uso Arch Linux pero pasa con todas las distros Linux.

Los paquetes de idiomas para el inglés están separados por país:

extra/hunspell-en 2017.01.22-2  - English (US, UK, etc.) hunspell dictionaries
extra/hunspell-en_AU 2017.01.22-2  - AU English hunspell dictionaries
extra/hunspell-en_CA 2017.01.22-2  - CA English hunspell dictionaries
extra/hunspell-en_GB 2017.01.22-2  - GB English hunspell dictionaries
extra/hunspell-en_US 2017.01.22-2  - US English hunspell dictionaries

Pero en español están todos amontonados en el mismo paquete:

hunspell-es /usr/share/hunspell/es_ANY.dic
hunspell-es /usr/share/hunspell/es_AR.dic
hunspell-es /usr/share/hunspell/es_BO.dic
hunspell-es /usr/share/hunspell/es_CL.dic
hunspell-es /usr/share/hunspell/es_CO.dic
hunspell-es /usr/share/hunspell/es_CR.dic
hunspell-es /usr/share/hunspell/es_CU.dic
hunspell-es /usr/share/hunspell/es_DO.dic
hunspell-es /usr/share/hunspell/es_EC.dic
hunspell-es /usr/share/hunspell/es_ES.dic
hunspell-es /usr/share/hunspell/es_GT.dic
hunspell-es /usr/share/hunspell/es_HN.dic
hunspell-es /usr/share/hunspell/es_MX.dic
hunspell-es /usr/share/hunspell/es_NI.dic
hunspell-es /usr/share/hunspell/es_PA.dic
hunspell-es /usr/share/hunspell/es_PE.dic
hunspell-es /usr/share/hunspell/es_PR.dic
hunspell-es /usr/share/hunspell/es_PY.dic
hunspell-es /usr/share/hunspell/es_SV.dic
hunspell-es /usr/share/hunspell/es_UY.dic
hunspell-es /usr/share/hunspell/es_VE.dic

Lo cual es un verdadero coñazo. Por ejemplo, Firefox (que usa los diccionarios del sistema) muestra este enorme menú desplegable cuando quiero seleccionar un idioma para el corrector:

captura_20180627_143834

¿Tiene sentido? Para mi no, porque uso español de España y el resto de variantes no me interesan. Y si me interesase (aunque no veo la razón para ello) pues tendría la opción de instalarme el paquete de la variante que necesito.

RGB-es commented 6 years ago

Creo que depende de las distribuciones Linux. De hecho hay muchos proyectos que son «granulares» por naturaleza (las librerías del proyecto KDE, systemD...), pero que vienen martillados en pocos paquetes o «conectados» con dependencias muchas veces discutibles. Los motivos de esto son varios: empaquetar algo tan complejo como una distribución Linux no es simple por lo que cualquier cosa que ayude a reducir el número de paquetes a mantener es tentador.

Hace unos años escribí un artículo sobre cómo tener menos diccionarios en Firefox que quizás te sirva.

Más allá de eso, lo siento, creo que este reporte tiene que cerrarse y que hay que abrir otro en la distribución correspondiente. No es que le vea muchas esperanzas, pero se puede intentar.

simonbcn commented 6 years ago

Gracias por el artículo, sí me ha servido. Con versiones anteriores bastaba con borrar un enlace simbólico que creaba la instalación de Firefox en Linux pero ahora ya no usa ese sistema. Un apunte, es suficiente con borrar esa clave spellchecker.dictionary_path, no es necesario que apunte a ningún lado (creo que si no vas a usar los diccionarios del sistema es mejor que esté en blanco para evitar posibles intrusiones de diccionarios no deseados). Luego te instalas los diccionarios que quieras para Firefox (https://addons.mozilla.org/es/firefox/language-tools/) y ya está.

Por cierto, he abierto un reporte para Arch Linux (es la distro que uso): https://bugs.archlinux.org/task/59157 Si alguien usa Arch Linux y piensa como yo que vote en ese enlace.

simonbcn commented 6 years ago

Estoy tratando de hacer yo mismo la separación de idiomas en Arch Linux pero hay uno que me choca: ¿qué es 'es_ANY'?

Tengo que poner una descripción para cada paquete generado, en los otros está claro que es <PAÍS> hunspell dictionaries pero no sé qué poner en este es_ANY. ¿Engloba todas las variantes del español?

RGB-es commented 6 years ago

Es un diccionario «neutro» que en cierta forma trata de «promediar» todos los otros. Su publico sería, imagino, los hablantes no nativos.

simonbcn commented 6 years ago

¿Crees que sería correcto entonces poner como descripción Neuter Spanish hunspell dictionaries? Gracias por tu ayuda.

simonbcn commented 6 years ago

Y otra cosa, parece que las reglas de separación silábica son comunes a todos los idiomas y están dentro de es_ANY, ¿es correcto?

RGB-es commented 6 years ago

Ni idea. No soy desarrollador, solo soy un usuario interesado ;)

RickieES commented 6 years ago

Estoy tratando de hacer yo mismo la separación de idiomas en Arch Linux pero hay uno que me choca: ¿qué es 'es_ANY'?

Hola, @simonbcn , la versión "es_ANY" es realmente la acumulación de todas las variantes regionales en una sola. No es tanto una versión internacional, como una versión todo vale si vale en algún lugar. Es, como tú dices, una versión que engloba todas las variantes del español.

sbosio commented 6 years ago

No soy usuario de Arch, pero puedo confirmarte que sí, los ficheros que conforman el diccionario de separación silábica son únicos para todas las localizaciones. En las extensiones que compilamos desde el proyecto para LibreOffice o Apache OpenOffice se incluyen en todos los paquetes, pero quizás Arch lo incluya únicamente en el paquete es_ANY. Por otro lado, como ya contestó @RickieES, la versión 'es_ANY' es un rejunte de todos los lemas de todas las localizaciones, con lo cual si se acepta una palabra como válida en cualquiera de ellas, será aceptada también por la versión es_ANY.

simonbcn commented 6 years ago

He modificado el paquete de hunspell-es para español en Arch y lo que he hecho es separarlo por países: hunspell-es_AR, hunspell-es_ES, hunspell-es_MX,... Así puedes instalar solo el/los diccionario/s en Español que te interesen. En el caso de hyphen-es (Spanish hyphenation rules) y mythes-es (Spanish thesaurus) no tiene sentido separarlos porque todos son enlaces al mismo fichero:

hyph_es_ANY.dic  
hyph_es_AR.dic -> hyph_es_ANY.dic
hyph_es_BO.dic -> hyph_es_ANY.dic
hyph_es_CL.dic -> hyph_es_ANY.dic
hyph_es_CO.dic -> hyph_es_ANY.dic
hyph_es_CR.dic -> hyph_es_ANY.dic
hyph_es_CU.dic -> hyph_es_ANY.dic
hyph_es_DO.dic -> hyph_es_ANY.dic
hyph_es_EC.dic -> hyph_es_ANY.dic
hyph_es_ES.dic -> hyph_es_ANY.dic
hyph_es_GT.dic -> hyph_es_ANY.dic
hyph_es_HN.dic -> hyph_es_ANY.dic
hyph_es_MX.dic -> hyph_es_ANY.dic
hyph_es_NI.dic -> hyph_es_ANY.dic
hyph_es_PA.dic -> hyph_es_ANY.dic
hyph_es_PE.dic -> hyph_es_ANY.dic
hyph_es_PR.dic -> hyph_es_ANY.dic
hyph_es_SV.dic -> hyph_es_ANY.dic
hyph_es_UY.dic -> hyph_es_ANY.dic
hyph_es_VE.dic -> hyph_es_ANY.dic
th_es_AR_v2.dat -> th_es_ES_v2.dat
th_es_AR_v2.idx -> th_es_ES_v2.idx
th_es_BO_v2.dat -> th_es_ES_v2.dat
th_es_BO_v2.idx -> th_es_ES_v2.idx
th_es_CL_v2.dat -> th_es_ES_v2.dat
th_es_CL_v2.idx -> th_es_ES_v2.idx
th_es_CO_v2.dat -> th_es_ES_v2.dat
th_es_CO_v2.idx -> th_es_ES_v2.idx
th_es_CR_v2.dat -> th_es_ES_v2.dat
th_es_CR_v2.idx -> th_es_ES_v2.idx
th_es_CU_v2.dat -> th_es_ES_v2.dat
th_es_CU_v2.idx -> th_es_ES_v2.idx
th_es_DO_v2.dat -> th_es_ES_v2.dat
th_es_DO_v2.idx -> th_es_ES_v2.idx
th_es_EC_v2.dat -> th_es_ES_v2.dat
th_es_EC_v2.idx -> th_es_ES_v2.idx
th_es_ES_v2.dat  
th_es_ES_v2.idx  
th_es_GT_v2.dat -> th_es_ES_v2.dat
th_es_GT_v2.idx -> th_es_ES_v2.idx
th_es_HN_v2.dat -> th_es_ES_v2.dat
th_es_HN_v2.idx -> th_es_ES_v2.idx
th_es_MX_v2.dat -> th_es_ES_v2.dat
th_es_MX_v2.idx -> th_es_ES_v2.idx
th_es_NI_v2.dat -> th_es_ES_v2.dat
th_es_NI_v2.idx -> th_es_ES_v2.idx
th_es_PA_v2.dat -> th_es_ES_v2.dat
th_es_PA_v2.idx -> th_es_ES_v2.idx
th_es_PE_v2.dat -> th_es_ES_v2.dat
th_es_PE_v2.idx -> th_es_ES_v2.idx
th_es_PR_v2.dat -> th_es_ES_v2.dat
th_es_PR_v2.idx -> th_es_ES_v2.idx
th_es_SV_v2.dat -> th_es_ES_v2.dat
th_es_SV_v2.idx -> th_es_ES_v2.idx
th_es_UY_v2.dat -> th_es_ES_v2.dat
th_es_UY_v2.idx -> th_es_ES_v2.idx
th_es_VE_v2.dat -> th_es_ES_v2.dat
th_es_VE_v2.idx -> th_es_ES_v2.idx