Re: gtk1.x και Ελληνικά

Ο Νίκος Νύκταρης έγραψε:
Μιας και από φαίνεται δεν μου κάθεται μια νέα έκδοση του  knoppel είπα να
ασχοληθώ με μερικά bugs που κάποια στιγμή είχα συναντήσει.
Παρακάτω είναι ένα από αυτά και αφορά τις εφαρμογές gtk1.x και τα Ελληνικά ,
θα ήθελα τη γνώμη σας πριν κάνω κανένα bugreport που είναι άχρηστο ή λάθος.
Το πρόβλημα λοιπόν είναι η εμφάνιση των ελληνικών στις εφαρμογές gtk1.x που
συναντώ εδώ και καιρό (από τότε που βγήκε το x.org) στο Debian. Κάνοντας πριν
μερικές μέρες εγκατάσταση του τελευταία έκδοση του etch τα Ελληνικά  στο xmms
εμφανίζονται όπως στο
The image “https://i0.wp.com/www.knoppel.org/gtkbug/xmms1.png?w=750” cannot be displayed, because it contains errors.

Εδώ βλέπουμε ότι τα μεταφρασμένα μηνύματα της εφαρμογής είναι σε μορφή Unicode (για μονοτονικό είναι 2 byte ανά χαρακτήρα). Το XMMS για κάποιο λόγο δεν καταλαβαίνει ότι τα μηνύματα είναι σε μορφή UTF-8 με αποτέλεσμα να προσπαθεί να απεικονίσει κάθε byte ως χαρακτήρα από μια κωδικοποίηση 8-bit. Η επανάληψη του χαρακτήρα & υποδεικνύει το πρόβλημα αυτό.

Αυτό το πρόβλημα είχε αναφερθεί και για την ρώσικη γλώσσα καιρό πριν (debian
bug 330144) το οποίο και λύθηκε για αυτούς. (είναι το bug που έλεγα πριν από
καιρό στον simo)
Για αντίστοιχη λύση για τα Ελληνικά έχουμε δύο κομμάτια. Το ένα αφορά την
γραμματοσειρά που υπάρχει στο /etc/gtk/gtk.utf8 που προφανώς δεν υποστηρίζει
σωστά τα Ελληνικά
Ανοίγοντας το αρχείο και αλλάζοντας την γραμματοσειρά σε fixed το αποτέλεσμα
είναι το όπως εμφανίζεται στο

https://i0.wp.com/www.knoppel.org/gtkbug/xmms2.png?w=750

Τη διαφορά στο αποτέλεσμα μεταξύ των δύο παραπάνω στιγμιοτύπων οθόνης το λαμβάνεις με την απλή αλλαγή της γραμματοσειράς; Αυτό μπορεί να σημαίνει ότι η πρώτη γραμματοσειρά δεν είναι Unicode.

Από όσο γνωρίζω, η παραπάνω γραμματοσειρά είναι μια από τις Ασιατικές γραμματοσειρές.

Προφανώς δεν είναι ότι καλύτερο αισθητικά
Και επανέρχομαι στο bug 330144 και παρατηρώ ότι τα δικά μας αρχεία
στο /usr/share/X11/locale/el_GR.UTF-8 υπάρχουν μεν αλλά  είναι κενά. και από
φαίνεται στο locale.dir έτσι και αλλιώς δεν χρησιμοποιούνται.
Τα δημιούργησα λοιπόν και πρόσθεσα τις δύο κωδικοποιήσεις iso8859-7 και cp1253
που δεν υπάρχουν στο αντίστοιχο Αγγλικό αρχείο. Άλλαξα το locale.dir να
χρησιμοποιεί τα νέα αρχεία το αποτέλεσμα είναι όπως εμφανίζεται στο

The image “https://i0.wp.com/www.knoppel.org/gtkbug/xmms3.png?w=750” cannot be displayed, because it contains errors.

Να σημειώσω ότι έτσι και αλλιώς το αρχείο /etc/gtk/gtk.utf-8 πρέπει να
αλλαχτεί διαφορετικά το αποτέλεσμα είναι όπως το

https://i0.wp.com/www.knoppel.org/gtkbug/xmms4.png?w=750

Αυτό είναι πολύ παράξενο. Για να δείξει εκτεταμένους λατινικούς χαρακτήρες, η κωδικοποίηση της μετάφρασης του XMMS πρέπει να είναι 8-bit ή γίνονται παράξενες έμμεσες μετατροπές στην κωδικοποίηση. Μπορείς να επιβεβαιώσεις ότι η κωδικοποίηση της μετάφρασης του XMMS είναι UTF-8 και ότι η δήλωση στη κεφαλίδα είναι όντως UTF-8;

Προφανώς το αποτέλεσμα αισθητικά είναι πολύ καλύτερο. Το θέμα είναι είναι και
τεχνικά σωστό? Γιατί υπάρχουν τα αρχεία στο el_GR.UTF-8 και είναι κενά? Το
πρόβλημα αυτό υπάρχει και στις άλλες διανομές?
Ο κατάλογος el_GR.UTF-8 δεν χρειάζεται διότι αρκεί ο κατάλογος en_US.UTF-8. Η κωδικοποίηση είναι κοινή, UTF-8.
Για 8-bit ελληνικά (iso-8859-7) χρειάζεται τέτοιος κατάλογος που φυσικά είναι διαθέσιμος.
Παρακάτω ακολουθεί ένα link με τα αλλαγμένα αρχεία για όποιον θέλει να ελέγξει
τις αλλαγές ή/και να τις δοκιμάσει.

http://www.knoppel.org/gtkbug/gtkbug.tar.gz

Προσωπικά προτιμώ εφαρμογές που χρησιμοποιούν την κωδικοποίηση UTF-8 και άλλες επιλογές προσθέτουν πολυπλοκότητα που δεν έχουμε ανάγκη. Αν έχεις τη δυνατότητα να αλλάξεις την εφαρμογή XMMS σε μια από τις νεώτερες εκδόσεις που βασίζονται στο GTK2+, είναι η καλύτερη λύση.

Ακόμα, είναι καλό να αλλάξεις την βασική γραμματοσειρά συστήματος σε DejaVu (Dejavu Sans) διότι υποστηρίζει ελληνικά και είναι hinted.

Permanent link to this article: https://blog.simos.info/re-gtk1x-%ce%ba%ce%b1%ce%b9-%ce%95%ce%bb%ce%bb%ce%b7%ce%bd%ce%b9%ce%ba%ce%ac/

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.