El dia 30 desembre de 2013 22.49, Ernest Adrogué <nfdi...@gmail.com> ha
escrit:

> No tinc coneixments de C++.  Fa temps em vaig mirar l'algoritme de divisió
> de paraules de GTK però al final ho vaig deixar estar.  Em sembla que era
> Pango, qui ho feia.
>
> Correcte, així és. Teòricament pango-break segueix UAX TR29 [2], però no
puc verificar-ho sense usar Cairo. Caldria fer un petit programa "pango
only" que marquès els talls de paraula en una frase de prova, per a
verificar que pango  va bé. En cas afirmatiu, anar a buscar el problema a
Cairo. En cas negatiu, veure on falla pango, perquè el codi [2] sembla
correcte (l'he resseguit unes quantes vegades).


El primer pas seria arreglar el local ca_ES, perquè dóna la categoria del
> caràcter incorrecta.  Segons he llegit a [1] hauríem de contactar amb el
> mantenidor del local ca_ES de la libc de GNU (Jordi Mallach, em sona que el
> tenim en aquesta llista).
>

Sí, el tenim per aquí, i si no el puc localitzar per altres bandes, :)
Ara... la solució bona és que readline usi UAX TR29 per a detectar
paraules. L'algorisme lletres i números és massa simple per a detectar
paraules. En cas que els desenvolupadors de readline no vulguin, doncs el
pla B que indiques seria una bona aproximació i funcionaria, sempre que
tinguem el locale català actiu.

Caldria fer proves, per exemple que passa si intentem passar a minúscula o
a majúscula el caràcter.

Com has canviat la definició del locale? Explica-m'ho senzill, sisplau, :)

Abans que ningú no faci la proposta, ja es va intentar posar el punt volat
(U+00B7) com a caràcter alfabètic a Unicode (valor predeterminat per a
totes les llengües). Es va denegar. Les possibilitats de posar-ho allà són
nul·les. De fet, estrictament parlant, el punt volat no és un caràcter
alfabètic. És un signe de puntuació intern de paraula, per tant ja està ben
classificat. Una altra cosa és que els algorismes ens perjudiquin i la
drecera més fàcil sigui classificar-lo com alfabètic.

Joan Montané


>
> [1] https://sourceware.org/glibc/wiki/Locales
>
> [2] https://git.gnome.org/browse/pango/tree/pango/break.c?id=1.28.3#n737

Respondre per correu electrònic a