[fedora-trans-el] Re: Χρήση en_US.UTF-8 αντί el_GR.UTF-8 (Compose)
Simos Xenitellis
simos.lists at googlemail.com
Tue Jun 19 20:18:10 UTC 2007
Στις 16-05-2007, ημέρα Τετ, και ώρα 00:29 +0300, ο/η Αλέξανδρος
Διαμαντίδης έγραψε:
> * Simos Xenitellis [2007-05-09 12:38]:
> > Πράγματι, αν δει κανείς το αρχείο
> > http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=blob_plain;f=nls/en_US.UTF-8/Compose.pre
> > υπάρχουν ακολουθίες για τη γραφή χαρακτήρων που είναι ανεξάρτητοι από
> > γλώσσες. (στο παραπάνω σύνδεσμο πρέπει να αλλάξετε την κωδικοποίηση του
> > Firefox σε Προβολή/Κωδικοποίηση Χαρακτήρων/Unicode (UTF-8).
>
> Κάτι που θυμήθηκα σχετικά με το παραπάνω: εδώ και κάποια χρόνια (από
> το XFree86 4.3 νομίζω) δε χρειάζεται η προτελευταία στήλη... Για
> παράδειγμα, αντί για:
>
> <dead_acute> <Greek_ALPHA> : "Ά" U0386
>
> αρκεί:
>
> <dead_acute> <Greek_ALPHA> : U0386
>
> Το string μέσα στα εισαγωγικά, που εξαρτάται από το τρέχον locale, παράγεται
> αυτόματα από την Xlib.
Ack. Θα το διατηρήσω όμως μιας και δεν πειράζει, διότι το κάνει πιο
ευανάγνωστο, και επιτρέπει αναζητήσεις.
> > Όπως καταλαβαίνω, από το αρχείο
> > http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=blob_plain;f=nls/el_GR.UTF-8/Compose.pre
> > χρειάζεται να πάρω μόνο το κομμάτι "Part 2", να αλλάξω το στυλ σε αυτό
> > που έχει ήδη το en_US.UTF-8, και να το προσθέσω το en_US.UTF-8. Είναι
> > έτσι;
>
> Ναι, σωστά.
Κοιτώντας το παραπάνω αρχείο βλέπω ότι υπάρχει και Part 3,
XCOMM Part 3
XCOMM
XCOMM ISO 8859-7 (Greek) multi-key and dead key definitions extracted
XCOMM and converted from the iso8859-7/Compose file.
Το κομμάτι αυτό περιλαμβάνει το μονοτονικό, ενώ το Part 2 είναι για το
πολυτονικό.
Έκανα μια σύγκριση μεταξύ των
http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=blob_plain;f=nls/el_GR.UTF-8/Compose.pre
και
http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=blob_plain;f=nls/en_US.UTF-8/Compose.pre
όπου παρατηρώ ότι για
1. το (σωστό) el_GR.UTF-8/Compose.pre υπάρχουν 1475 γραμμές για
ελληνικούς χαρακτήρες
2. το πιο παλιό en_US.UTF-8/Compose.pre υπάρχουν 2008 γραμμές για
ελληνικούς χαρακτήρες
Ωστόσο, για το en_US.UTF-8/Compose.pre, από τις 2008 γραμμές με
ελληνικούς χαρακτήρες, οι 365 είναι γραμμές με "combining_xxxxxx", όπως
<combining_acute> <Greek_ALPHA> : "Ά" U0386 # GREEK CAPITAL
LETTER ALPHA WITH TONOS
<combining_acute> <Greek_EPSILON> : "Έ" U0388 # GREEK CAPITAL
LETTER EPSILON WITH TONOS
<combining_acute> <Greek_ETA> : "Ή" U0389 # GREEK CAPITAL
LETTER ETA WITH TONOS
Όπως είναι τώρα, θεωρώ το κομμάτι για τα ελληνικά ως blob (αχταρμάς;) το
οποίο δεν πειράζω. Έχεις φτιάξει ένα πρόγραμμα εντολών σε Perl που να
δημιουργεί αυτό το blob,
http://hal.csd.auth.gr/~vvas/i18n/xkb/polytonic-compose.pl
Το πρόγραμμα εντολών polytonic-compose.pl παράγει 1028 γραμμές ενώ
upstream υπάρχουν τουλάχιστον 1400 τέτοιες γραμμές.
Μεταγλώττισα το GTK+ με το en_US.UTF-8/Compose.pre ως πηγή και είχα
σημαντικό πρόβλημα στη γραφή ελληνικών (πολυτονικό).
Μεταγλώττισα το GTK+ με το el_GR.UTF-8/Compose.pre ως πηγή και το
αποτέλεσμα ήταν πιο θετικό.
Συγκεκριμένα,
από το /etc/X11/xkb/symbols/gr:
key <AD11> { [ dead_tilde, dead_diaeresis, dead_macron ] };
key <AD12> { [ dead_iota, VoidSymbol, dead_breve ] };
key <AC10> { [ dead_acute, dead_horn ] };
key <AC11> { [ dead_grave, dead_ogonek ] };
το αποτέλεσμα είναι
dead_tilde, ᾶῧῗ
dead_diaeresis, ϊῧῗ
dead_macron, ΔΕΝ ΔΟΥΛΕΥΕΙ
dead_iota, ΔΕΝ ΔΟΥΛΕΥΕΙ ΠΑΝΤΑ, ᾃᾁ:ναι, ᾼ: όχι
dead_breve, ᾰῠῐ
dead_acute, άἀὰἁἃἄ
dead_horn, άἀὰἁἃἄ
dead_grave, άἀὰἁἃἄ
dead_ogonek, άἀὰἁἃἄ
Δεν μπορώ να καταλάβω γιατί δεν δουλεύουν τα dead_macron και dead_iota,
αν και υπάρχουν
<dead_macron> <Greek_alpha> : "ᾱ" U1fb1 # GREEK SMALL LETTER ALPHA WITH
MACRON
<dead_iota> <Greek_alpha> : "ᾳ" U1fb3 # GREEK SMALL LETTER ALPHA WITH
YPOGEGRAMMENI
> > Ακόμα, κατά το νέο αρχείο Compose, τα π.χ.
> > <dead_grave> <U0313> <Greek_alpha> : "ἂ" U1f02
> > θα αντικατασταθούν με
> > <dead_grave> <U10000313> <Greek_alpha> : "ἂ" U1f02
> > όπως έχει αλλάξει ήδη από στο en_UTF.UTF-8.
>
> Αυτή η αλλαγή δεν είναι σωστή. Τα Unicode keysyms αποτελούνται από το
> γράμμα "U" ακολουθούμενο από τον κωδικό Unicode του χαρακτήρα, και είναι
> ίσα με 0x1000000 + τον κωδικό Unicode. Δηλαδή, ο χαρακτήρας U+0313 έχει
> keysym "U0313", που είναι ίσο με 0x10000313. To U10000313 δεν είναι
> έγκυρο keysym - δες ένα παράδειγμα:
>
> $ xmodmap -e 'keycode 96 = U0313'
>
> Το keycode 96 είναι το πλήκτρο F12. Δίνοντας την παραπάνω εντολή, το
> F12 αρχίζει να βγάζει το χαρακτήρα U+0313, COMBINING COMMA ABOVE.
> Αντίθετα...
>
> $ xmodmap -e 'keycode 96 = U10000313'
> xmodmap: commandline:1: bad keysym name 'U10000313' in keysym list
> xmodmap: 1 error encountered, aborting.
>
> Η αλλαγή που έχει γίνει στο en_US.UTF-8 πρέπει να αντιστραφεί, εκτός κι
> αν έχει αλλάξει και κάτι άλλο στην Xlib που δεν το ξέρω. Αλλά δε
> νομίζω...
Μμμμμ...
Τώρα έχει αλλάξει το en_US.UTF-8/Compose.pre με πρόσθεση 0x1000000
παντού. Είναι πιθανό το όλο οικοδόμημα γραφής γλωσσών συντηρείται λόγω
του GTK+ IM που αγνοεί το Compore.pre. Είναι παράξενο που δεν μιλάνε οι
χρήστες KDE που μιλάνε γλώσσες άλλες από αγγλικά και έχουν ρυθμισμένο το
en_US.UTF-8/Compose.pre.
Φαίνεται να το έχουμε χαλάσει ;-0
> > Εδώ πρέπει να πω ότι το όνομα του "en_US.UTF-8" δεν είναι κατάλληλο πια
> > μιας και το χρησιμοποιούν (και μπορούν να το χρησιμοποιήσουν) οι
> > υπόλοιπες γλώσσες.
>
> Ναι, λογικό. Αλλά ποιο θα ήταν ένα καλό όνομα; Ίσως απλώς "UTF-8"; Αυτά
> θα έπρεπε να τα συζητάμε στη λίστα xorg, όχι εδώ. Μήπως έχει συζητηθεί ήδη;
Δεν γνωρίζω να έχει συζητηθεί. Νομίζω ότι είναι απλώς θέμα να κάνει
κάποιος μια αναφορά σφάλματος (bug report) με το patch.
> > Ένα πράγμα που δεν γνωρίζω είναι το αρχείο στο οποίο θα καθορίσουμε ότι
> > τα ελληνικά compose sequences βρίσκονται πια στο "en_US.UTF-8" αντί του
> > "el_GR.UTF-8".
>
> Είναι το nls/compose.dir.pre (από το οποίο παράγεται το
> X11/locale/compose.dir που εγκαθίσταται τελικά), όπου αναφέρεται ποιο
> Compose χρησιμοποιείται ανάλογα με το locale. Τώρα λέει:
>
> iso8859-7/Compose: el_GR.ISO8859-7
> ...
> el_GR.UTF-8/Compose: el_GR.UTF-8
Σε ποιο σημείο όμως πρέπει να αλλάξουμε upstream για να διορθώσουμε την
παραπάνω ρύθμιση;
Κοιτώντας στον πηγαίο κώδικα του Xorg δεν εντόπισα το σημείο. Πρέπει να
υπάρχει κάπου upstream αντί να το ρυθμίζουν κάθε φορά οι διανομές.
Φιλικά,
Σίμος
More information about the Fedora-trans-el
mailing list