[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sobre la ele geminada (era: Re: us funciona l'opció nodeadkeys?)



2013-12-30, 23:43 (+0100); Joan Montané escriu:
> El dia 30 desembre de 2013 22.49, Ernest Adrogué <nfdisco@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).

Jo vaig fer un programa d'aquest estil amb Python per fer proves. Miraré a
veure si el trobo.

> 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, :)

Les difinicions són a /usr/share/i18n i s'han de compilar amb un programa
que es diu localedef.  El format de les definicions, a la plana del manual
de locale(5) explica una mica com és.

Adjunto el locale modificat, que es diu ca_ZZ.  L'única diferència amb el
ca_ES és que el caràcter de punt volat U00B7 passa de la secció «punct» a la
secció «alpha» a LC_CTYPE.  Nota: a l'hora de fer canvis, els caràcters han
d'estar ordenats, si els poses a qualsevol lloc dóna error de sintaxi.

Passos per provar el locale:

1. Descomprimir el fitxer tar.gz.
2. Anar al directori i18/locale i executar:
    source install-locale 2> errors
    source set-locale-subshell

La primera línia compila el locale ca_ZZ que hi ha al subdirectori
locale-data i l'instal·la al directori locale-test.  La segona línia executa
bash amb el local configurat com a ca_ZZ. Per sortir i tornar al local ca_ES
o el que tinguis configurat per al teu usuari, es fa amb «exit».

> 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.

Els locals que utilitza Debian són els de Unicode [1], són els mateixos que
fa servir Google o Apple.  Però a Debian no crec que hi hagi problema per
canviar-lo, o sempre es pot fer un local ca_ES alternatiu com el ca_ES@Euro
o ca_ES@valencia.  Tècnicament és un caràcter de puntuació, però diria que
no s'utilitza enlloc, excepte a la ela geminada.  El punt de multiplicació
diria que és una altre caràcter.

Salut.

Attachment: locale-ca-es.tar.gz
Description: Binary data


Reply to: