[I18NGR] Συμβατότητα Μονοτονικού-Πολυτονικού (ήταν Μονοτονικό σε GTK+ εφαρμογές, αναθεώρηση πολυτονικού...)

Πιστιόλης Κωνσταντίνος pistiolis at ts.sch.gr
Thu Jul 28 02:31:56 EEST 2005


Χαιρετώ τη λίστα,

Ξεκινώ καινούργιο thread μιας και το θέμα ξεφεύγει από την απλή αλλαγή
διάταξης.
Επειδή το μήνυμα αναμένεται μακροσκελές, ξεκινάω απ' το τέλος:
-----------------------------------------------------------------------
Μπορούμε να αλλάξουμε το νεκρό πλήκτρο του τόνου στο XKB από dead_acute
σε dead_abovedot;
(dead_tonos δεν υπάρχει, μήπως θα μπορούσαμε να βάλουμε;)
Μήπως παρουσιαστεί πρόβλημα αλλού; ξέρει κανείς κάποιο πρόγραμμα να
χρησιμοποιεί το νεκρό πλήκτρο dead_acute απ' ευθείας μόλις πατιέται;
-----------------------------------------------------------------------
και εξηγώ γιατί:

Έχουμε το εξής πρόβλημα ασυμβατότητας:
Στα βασικά ελληνικά του unicode έχουν οριστεί τονούμενοι χαρακτήρες
(πχ 03AC για ά με τόνο), οι οποίοι έχουν ξαναοριστεί στα εκτεταμένα  
(πολυτονικά)
(πχ 1F71 για ά με οξεία).
Οι χαρακτήρες αυτοί υποτίθεται ότι ταυτίζονται, αλλά πρακτικά είναι
διαφορετικοί.
Από τη μια η γραμματική λέει ότι ο τόνος του μονοτονικού είναι η οξεία,
αλλά οι γραμματοσειρές έχουν διαφορετικό σύμβολο (ο τόνος είναι συνήθως μια
τελεία η μια κάθετη γραμμή, ενώ η οξεία μια πλάγια προς τα δεξιά).
Το unicode λέει ότι οι χαρακτήρες είναι ισοδύναμοι, αλλά πολλοί
κατασκευαστές γραμματοσειρών ορίζουν ξεχωριστά σύμβολα. Όταν συμβαίνει
αυτό τότε ο κατασκευαστής της γραμματοσειράς πρέπει να ορίζει ξεχωριστά
τους οξυνόμενους χαρακτήρες (όταν η γραμματοσειρά είναι πολυτονική).
Είναι λοιπόν στα ευθύνη του προγραμματιστή και του χρήστη να ξεχωρίζουν
τους οξυνόμενους από τους απλά τονούμενους χαρακτήρες, δηλαδή η πολυτονική
διάταξη θα πρέπει να παράξει οξυνόμενους χαρακτήρες και η μονοτονική
τονούμενους.

Το πρόβλημά μας είναι ότι τόσο η μονοτονική όσο και η πολυτονική διάταξη
χρησιμοποιούν το νεκρό πλήκτρο dead_acute (οξεία) για νεκρό πλήκτρο τόνου
και το Compose αρχείο του XKB είναι κοινό για ένα locale.
Άρα, δεν μπορούμε να παράγουμε διαφορετικούς χαρακτήρες ανά διάταξη και
μέχρι τώρα χρησιμοποιούμε μόνο τους μονοτονικούς χαρακτήρες, με τις
εξής συνέπειες:
-Τα πολυτονικά κείμενα δεν φαίνονται σωστά με τις περισσότερες  
γραμματοσειρές
-Τα πολυτονικά κείμενα δεν είναι σωστά, οπότε υπάρχει πρόβλημα στα  
προγράμματα
που διαβάζουν πολυτονικά κείμενα (μηχανές αναζήτησης, διορθωτές,  
ορθογράφους,
λεκτικούς αναλυτές για πχ. αρχαία κλπ)
-και δυστυχώς το Linux χάνει σε αξιοπιστία, διότι τα κείμενα είναι λάθος

Από την άλλη:
-δεν είναι δυνατόν να χρησιμοποιούμε οξεία στο μονοτονικό για όλους τους
παραπάνω λόγους
-η απλή λύση να τροποποιήσουν το προσωπικό .XCompose αρχείο τους μόνο οι
απαιτητικοί χρήστες του πολυτονικού, ώστε να παράγει οξυνόμενους  
χαρακτήρες,
είναι επικίνδυνη και άβολη. Αυτό επειδή η ανάμειξη οξειών και τόνων μπορεί
να είναι εξαιρετικά βλαβερή, αφού οι χαρακτήρες είναι διαφορετικοί. Ένας
χρήστης που θα φτιάξει το πληκτρολόγιό του να παράγει οξυνόμενους  
χαρακτήρες
δεν θα μπορεί να κάνει ούτε μια αναζήτηση στο google, και άπειρα μπερδέματα
μπορεί να γίνουν με τα ονόματα αρχείων.

Η προτεινόμενη λύση
-------------------
Αυτό που θέλουμε είναι να ανεξαρτητοποιήσουμε την πολυτονική από τη  
μονοτονική
διάταξη και το πρόβλημα είναι ότι και οι δυο παράγουν το νεκρό χαρακτήρα
dead_acute (οξεία). Τυπικά, ο τόνος του μονοτονικού είναι η οξεία αλλά  
πρακτικά
το μονοτονικό χρησιμοποιεί διαφορετικό τόνο και θα έπρεπε να είχε κάποιο
dead_tonos ή dead_above_line_vertical, αλλά δεν υπάρχει τέτοιο σύμβολο στο  
XKB.
Τα νεκρά πλήκτρα (ορίζονται κάπου στο /usr/X11R6/include/keysymdef.h αν  
θυμάμαι
καλά) και είναι τα:
dead_grave (βαρεία)
dead_acute (οξεία)
dead_circumflex (^)
dead_tilde (περισπωμένη)
dead_macron (μακρό)
dead_breve (βραχύ)
dead_abovedot ()
dead_diaeresis (διαλυτικά)
dead_abovering ()
dead_doubleacute (διπλή οξεία)
dead_caron (ανάποδο ^)
dead_cedilla ()
dead_ogonek (δασεία)
dead_iota (υπογεγραμμένη)
dead_voiced_sound ()
dead_semivoiced_sound ()
dead_belowdot ()
dead_hook (μοιάζει με ψιλή, σαν γατζάκι)
dead_horn (ψιλή)

οπότε
-ή ζητάμε από τους developers των Χ να βάλουν ένα dead_tonos ή ένα
  dead_aboveline (η σωστότερη λύση),
-ή χρησιμοποιούμε το dead_abovedot, με το σκεπτικό ότι ο τόνος του  
μονοτονικού
  είναι πολλές φορές μια απλή τελεία
-ή ψάχνουμε κάτι άλλο για την οξεία του πολυτονικού και να αφήσουμε άθικτο  
το
  μονοτονικό, πράγμα που θα προκαλέσει ακόμη περισσότερο μπέρδεμα.


Με τον τρόπο αυτό.
Στο μονοτονικό θα παράγουμε μόνο μονοτονικούς χαρακτήρες (σωστά κειμενα)
Στο πολυτονικό θα παράγουμε σωστά πολυτονικά κείμενα, χωρίς να επηρρεάζουμε
το μονοτονικό. Επειδή δε, οι τονούμενοι χαρακτήρες (του μονοτονικού) είναι
χρήσιμοι, μπορουμε να προσθέσουμε ένα νεκρό πλήκτρο στο πολυτονικό για την
προσθήκη απλού τόνου, όταν ο χρήστης το χρειάζεται.

Το ερώτημα τώρα είναι αν θα δημιουργηθεί αλλού πρόβλημα όταν αλλάξουμε το
σύμβολο που παράγει το νεκρό πλήκτρο ; του μονοτονικού.
Ξέρει κανείς αν υπάρχουν προγράμματα που διαβάζουν άμεσα το πάτημα του
dead_acute πριν συντεθεί σε τονούμενο χαρακτήρα;
Πιστεύω ότι αν η αλλαγή παραμένει μόνο μέσα στο XKB δεν θα έχουμε πρόβλημα.
Ετοιμάζω ένα patch ώστε να μπορούμε να κάνουμε πειράματα.

Είναι πολύ σημαντικό να λύσουμε αυτό το πρόβλημα, καθώς αποτελεί πολύ  
μεγάλη
δυσφήμιση για το linux!


Με φιλικούς χαιρετισμούς,
Κώστας









More information about the I18ngr mailing list