Αυτόματη αφαίρεση τόνων στα κεφαλαία ελληνικά

Posted by Bill Seremetis on 2013, June 14 - 15:31

Όλοι ξέρουμε ότι στα κεφαλαία ελληνικά δεν επιτρέπονται οι τόνοι. Εϊναι αυτονόητο για όσους μεγαλώσαμε μαθαίνοντας ελληνικά, αλλά είναι κάτι εντελώς άγνωστο για τους υπολογιστές.

Χρησιμοποιόντας τα text-transform: uppercase και font-variant: small-caps είναι πολύ εύκολο κάποιος να μετατρέψει τα μικρά γραμμάτα σε κεφαλία στο design της σελίδας του. Αυτή είναι μια πρακτική που χρησιμοποιείται πολύ συχνά από τους web-designers, ειδικά όταν θέλουν συγκεκριμένα σημεία κειμένου να ξεχωρίζουν από τα υπόλοιπα (μενού, κατηγορίες κ.α.).

Δυστυχώς, σε ότι αφορά την ελληνική γλώσσα, η μετατροπή αυτή μέσω CSS δεν αφαιρεί τους τόνους. Οι τόνοι παραμένουν και τα γράμματα γίνονται κεφαλαία. Γράφοντάς αυτό τον κώδικα:

<p style="text-transform: uppercase">ελληνικά μικρά γράμματα που θα γίνουν κεφαλαία</p>

το τελικό αποτέλεσμα είναι το

ΕΛΛΗΝΙΚ'Α ΜΙΚΡΆ ΓΡΆΜΜΑΤΑ ΠΟΥ ΘΑ Γ'ΙΝΟΥΝ ΚΕΦΑΛΑΊΑ

το οποίο βέβαια είναι λάθος σε ότι αφορά την ελληνική γλώσσα.

Αυτό μπορεί να αλλάξει εύκολα και απροβλημάτιστα με μερικές γραμμές JavaScript (jQuery) έτσι ώστε η αλλαγή σε κεφαλαία να μην εμφανίζει τόνους.
Επειδή όλες τις σελίδες τις υλοποιώ με Drupal έφτιαξα το σχετικό module (https://drupal.org/project/remove_upcase_accents) που θα σας κάνει την ζωή εύκολη. Η χρήση του είναι πολύ απλή, το ενεργοποιείτε και δουλεύει. Από την έκδοση 2.x+, που βγήκε εχθές, μπορεί και λειτουργεί και στις σελίδες της διαχείρισης και στα fieldsets, οπότε επιτέλους το Drupal είναι σωστό στα ελληνικά.

Το JS που συνοδευεί το module μπορεί να χρησιμοποιηθεί και σε επίπεδο theme, αν δεν θέλετε να τρέχει παντού ή αν θέλετε να το αλλάξετε για να στοχεύει μόνο συγκεκριμένες περιοχές του html σας.

Προσθέτοντας την παρακάτω γραμμή στο .info αρχέιο

scripts[] = js/remove_upcase_accents.js

To js θα καλείται από το theme και θα επεμβαίνει μόνο σε αυτό το theme και όχι σε όλο το Drupal site σας. Αν θέλετε να το πειράξετε ώστε να στοχεύει συγκεκρίμενα σημεία τότε δεν έχετε παρά να αλλάξετε τις τελευταίες γραμμές.

Προτάσεις για βελτίωση του module ευπρόσδεκτες φυσικά!