Στις 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 αντί να το ρυθμίζουν κάθε φορά οι διανομές. Φιλικά, Σίμος -- Ubuntu-gr mailing list Ubuntu-gr@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr