Υποστήριξη της Ελληνικής Γλώσσας στο FreeBSD

Νικόλαος Κόκκαλης

$FreeBSD: head/el_GR.ISO8859-7/articles/greek-language-support/article.xml 39632 2012-10-01 11:56:00Z gabor $

$FreeBSD: head/el_GR.ISO8859-7/articles/greek-language-support/article.xml 39632 2012-10-01 11:56:00Z gabor $

Το FreeBSD είναι ένα κατοχυρωμένο εμπορικό σύμβολο του FreeBSD Foundation.

Πολλές από τις λέξεις ή φράσεις οι οποίες χρησιμοποιούνται από τους κατασκευαστές ή τους πωλητές τους για να διακρίνουν τα προϊόντα τους θεωρούνται εμπορικά σύμβολα. Όπου αυτές εμφανίζονται σε αυτό το κείμενο και για όσες από αυτές γνωρίζει η Ομάδα Ανάπτυξης του FreeBSD ότι είναι πιθανόν να είναι εμπορικά σύμβολα, θα δείτε ένα από τα σύμβολα: «™» ή «®».

Αυτό το κείμενο δίνει οδηγίες για τις ρυθμίσεις που χρειάζονται, ώστε να μπορούμε να διαβάσουμε και να γράψουμε Ελληνικά στο FreeBSD, τόσο σε κατάσταση κονσόλας όσο και χρησιμοποιώντας το γραφικό περιβάλλον Xorg.


1 Εισαγωγή

Η ρύθμιση της υποστήριξης του FreeBSD για την Ελληνική γλώσσα είναι αρκετά εύκολη, σε κάθε επίπεδο. Με σχετικά λίγες ρυθμίσεις, μπορεί να γράψει και να διαβάσει κανείς σωστά Ελληνικά με την επίσημη κωδικοποίηση ISO/IEC 8859-7, τόσο σε κατάσταση κονσόλας όσο και μέσα από το γραφικό περιβάλλον Xorg. Αν και οι ρυθμίσεις που αφορούν αποκλειστικά στο FreeBSD είναι αυτές της κονσόλας, εδώ θα αναφερθούν και αυτές που αφορούν και τα Xorg αλλά και τις επιμέρους εφαρμογές.

Αφού διαβάσετε αυτό το άρθρο θα ξέρετε:


2 Ρυθμίσεις για Ελληνικά στην κονσόλα του FreeBSD

Στην κονσόλα οι ρυθμίσεις αφορούν δύο στάδια. Το πρώτο στάδιο γίνεται κατά τον ίδιο τρόπο πάντα, ενώ το δεύτερο διαφοροποιείται ανάλογα με το κέλυφος («shell»).


2.1 Ελληνική γραμματοσειρά και αντιστοιχία πληκτρολογίου για την κονσόλα

Για να μπορέσουμε να διαβάσουμε και να γράψουμε Ελληνικά με την κωδικοποίηση ISO/IEC 8859-7 στην κονσόλα του FreeBSD χρειαζόμαστε τουλάχιστον δύο αρχεία: μια γραμματοσειρά και μια αντιστοιχία πληκτρολογίου.

Ο Giorgos Keramidas έχει φτιάξει μια τέτοια γραμματοσειρά και μια αντιστοιχία πληκτρολογίου. Αυτά τα δύο αρχεία δεν είναι μέρος του βασικού συστήματος του FreeBSD τη στιγμή που γράφονται αυτές οι γραμμές, οπότε θα χρειαστεί να τα κατεβάσετε από το δίκτυο. Για να κατεβάσετε τα δύο αρχεία που χρειάζονται και να τα τοποθετήσετε στον κατάλληλο κατάλογο για τον τύπο του κάθε αρχείου, μπορείτε να τρέξετε τις παρακάτω εντολές:

# cd /usr/share/syscons/fonts
# fetch 'http://people.freebsd.org/~keramida/files/grfixed-8x16.fnt'
# cd /usr/share/syscons/keymaps
# fetch 'http://people.freebsd.org/~keramida/files/keramida.el-iso.kbd'

2.2 Ενεργοποίηση της Ελληνικής υποστήριξης στην κονσόλα

Για να ορίσουμε ως προκαθορισμένη γραμματοσειρά και αντιστοιχία πληκτρολογίου αυτές που κατεβάσαμε, αρκεί να βάλουμε στο αρχείο /etc/rc.conf τις παρακάτω ρυθμίσεις:

font8x16="grfixed-8x16"
keymap="keramida.el-iso"

Με αυτές τις ρυθμίσεις, το σύστημά μας θα χρησιμοποιεί τα αρχεία που μόλις κατεβάσαμε από την επόμενη φορά που θα ξεκινήσει. Στο FreeBSD δε χρειάζεται όμως να κάνουμε επανεκκίνηση για μια τέτοια μικρή αλλαγή. Μπορούμε απλά να τρέξουμε σε μια κονσόλα τις εντολές:

% vidcontrol -f 8x16 grfixed-8x16 < /dev/ttyv0
% kbdcontrol -l keramida.el-iso < /dev/ttyv0

Αυτές οι εντολές θα φορτώσουν εκείνη τη στιγμή τη νέα γραμματοσειρά κονσόλας, και τη νέα αντιστοιχία πληκτρολογίου.


2.3 Ρυθμίσεις για το κέλυφος χρήστη

Με τις ρυθμίσεις που έχουμε κάνει ως τώρα δεν έχει ενεργοποιηθεί πλήρως η Ελληνική υποστήριξη. Κάθε πρόγραμμα που τρέχει στο FreeBSD, ακόμα και το κέλυφος χρήστη που χρησιμοποιούμε, εξαρτάται από τις τρέχουσες ρυθμίσεις «locale», για να ξέρει σε τι γλώσσα δουλεύουμε.

Οι προκαθορισμένες ρυθμίσεις locale υποστηρίζουν μόνο την εισαγωγή και ανάγνωση κειμένου σε Αγγλικά, οπότε πρέπει να αλλάζουμε τις ρυθμίσεις αυτές για να μπορεί το κέλυφος μας να δουλέψει σωστά με την Ελληνική γλώσσα.


2.3.1 Ρυθμίσεις για το κέλυφος sh(1)

Αν το κέλυφος που χρησιμοποιούμε είναι το sh(1), πρέπει να βάλουμε στο αρχείο .profile του λογαριασμού μας τις εξής ρυθμίσεις:

export LANG="el_GR.ISO8859-7"
export LC_CTYPE="el_GR.ISO8859-7"
export LC_COLLATE="el_GR.ISO8859-7"
unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME

2.3.2 Ρυθμίσεις για το κέλυφος csh(1)

Αν το κέλυφος που χρησιμοποιούμε είναι το csh(1), πρέπει να βάλουμε στο αρχείο .cshrc του λογαριασμού μας τις εξής ρυθμίσεις:

setenv LANG "C"
setenv LC_CTYPE "el_GR.ISO8859-7"
setenv LC_COLLATE "el_GR.ISO8859-7"
unsetenv LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME

2.3.3 Ρυθμίσεις για το κέλυφος bash

Αν το κέλυφος που χρησιμοποιούμε είναι το bash, πρέπει να βάλουμε στο αρχείο .bashrc του λογαριασμού μας τις εξής ρυθμίσεις:

export LANG="el_GR.ISO8859-7"
export LC_CTYPE="el_GR.ISO8859-7"
export LC_COLLATE="el_GR.ISO8859-7"
unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME

Επίσης, ειδικά για το bash, πρέπει να βάλουμε και τις εξής ρυθμίσεις στο αρχείο .inputrc του λογαριασμού μας:

set convert-meta Off
set input-meta On
set output-meta On

3 Ρυθμίσεις για Ελληνικά στο γραφικό περιβάλλον Xorg

Τα πιο συνηθισμένα γραφικό περιβάλλον εργασίας σε FreeBSD βασίζονται στην πλατφόρμα Xorg. Οι ρυθμίσεις για υποστήριξη Ελληνικών σε Xorg είναι εντελώς ίδιες με αυτές που χρησιμοποιεί το περιβάλλον Xorg και σε άλλα UNIX συστήματα (π.χ. σε GNU/Linux).

Αρχικά, πρέπει να ρυθμίσετε το περιβάλλον Xorg έτσι ώστε να ξεκινά σωστά—ακόμη και χωρίς Ελληνικά. Για πληροφορίες σχετικά με τις πρώτες αυτές ρυθμίσεις, δείτε το αντίστοιχο κεφάλαιο στο Εγχειρίδιο του FreeBSD.

Αφού καταφέρετε να ρυθμίσετε τα πάντα για να ξεκινά το γραφικό περιβάλλον Xorg, πρέπει να τοποθετήσετε τις παρακάτω γραμμές στο αρχείο /etc/X11/xorg.conf:

Section "InputDevice"
    Identifier "Keyboard1"
    Driver "kbd"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "us,el"
    Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

Αν στο αρχείο /etc/X11/xorg.conf υπάρχει ήδη ένα τέτοιο τμήμα, μπορείτε να τροποποιήσετε το υπάρχον τμήμα. Χρησιμοποιήστε τον χαρακτήρα «#» για να σχολιάσετε όποιες γραμμές δε θέλετε να κρατήσετε από το αρχικό «InputDevice».

Σημείωση: Γενικά, υπάρχουν τουλάχιστον δύο διαφορετικά «InputDevice» τμήματα σε ένα συνηθισμένο αρχείο /etc/X11/xorg.conf: ένα για το προκαθορισμένο πληκτρολόγιο κι ένα για το προκαθορισμένο ποντίκι. Προσοχή να κάνετε όποιες τροποποιήσεις έχετε κατά νου στο τμήμα το οποίο αναφέρει το πληκτρολόγιο (αυτό σημαίνει το «Identifier "Keyboard1"» παραπάνω).

Με τις ρυθμίσεις που έχουμε κάνει ως τώρα δεν έχει ενεργοποιηθεί πλήρως η Ελληνική υποστήριξη. Στο FreeBSD κάθε πρόγραμμα, ακόμα και το περιβάλλον Xorg που χρησιμοποιούμε, εξαρτάται από τις τρέχουσες ρυθμίσεις «locale», για να ξέρει σε τι γλώσσα δουλεύουμε.

Οι προκαθορισμένες ρυθμίσεις locale υποστηρίζουν μόνο την εισαγωγή και ανάγνωση κειμένου σε Αγγλικά, οπότε πρέπει να αλλάζουμε τις ρυθμίσεις αυτές για να μπορεί το περιβάλλον Xorg να δουλέψει σωστά με την Ελληνική γλώσσα.

Για αυτόν τον λόγο παραμετροποιούμε το αρχείο .xinitrc στο λογαριασμό μας. Πιο συγκεκριμένα θα πρέπει να προσθέσουμε τις παρακάτω γραμμές σε αυτό:

export LANG="el_GR.ISO8859-7"
export LC_CTYPE="el_GR.ISO8859-7"
export LC_COLLATE="el_GR.ISO8859-7"

Πριν ξεκινήσετε να χρησιμοποιείτε τα Χ, βεβαιωθείτε επίσης ότι έχετε τις σωστές ρυθμίσεις locale στο κέλυφος σας. Έτσι θα αποφύγετε πιθανά προβλήματα απεικόνισης Ελληνικών σε κάποιες εφαρμογές. Δείτε την ενότητα Ρυθμίσεις για το κέλυφος χρήστη.

Με αυτές τις ρυθμίσεις, το περιβάλλον Xorg θα ξεκινά με το σωστό «process environment» για να υποστηρίζει την Ελληνική γλώσσα.

Πολλές εφαρμογές που τρέχουν σε περιβάλλον Xorg μπορούν να ρυθμιστούν ορίζοντας μια σειρά από «X11 resources». Αυτά τα «resources» είναι, γενικά, ζευγάρια από τιμές της μορφής:

ΌνομαResource: Τιμή του resource

Οι τιμές αυτές ορίζονται στο αρχείο .Xresources του λογαριασμού μας.

Για το XTerm και αντίστοιχες εφαρμογές τερματικού, μπορεί να ρυθμιστεί η γραμματοσειρά έτσι ώστε να χρησιμοποιείται μια με Ελληνική υποστήριξη, ορίζοντας τις παρακάτω τιμές στο αρχείο .Xresources:

XTerm*font: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-7

Σημείωση: Μετά από αλλαγές στο αρχείο .Xresources, δε χρειάζεται επανεκκίνηση του περιβάλλοντος Xorg. Αρκεί απλά να τρέξουμε την εντολή:

% xrdb -merge ~/.Xresources

4 Ελληνικές γραμματοσειρές για το περιβάλλον Xorg

Το περιβάλλον Xorg έρχεται με ένα βασικό σύνολο γραμματοσειρών σε μορφή «bitmap». Μερικές από αυτές έχουν υποστήριξη ελληνικών, είτε για την κωδικοποίηση ISO/IEC 8859-7, είτε για την κωδικοποίηση ISO/IEC 10646 (Universal Character Set). Οι βασικές bitmap γραμματοσειρές που διανέμονται με το Xorg έχουν στο τέλος από το όνομά τους την κωδικοποίηση, οπότε μπορείτε να τις βρείτε εύκολα με το εργαλείο xlsfonts(1). Για να δείτε, για παράδειγμα, ποιές βασικές γραμματοσειρές υποστηρίζουν την κωδικοποίηση ISO/IEC 8859-7 μπορείτε να χρησιμοποιήσετε την εντολή:

% xlsfonts | fgrep -i iso8859-7

Αντίστοιχα, για να βρείτε ποιές γραμματοσειρές υποστηρίζουν την κωδικοποίηση ISO/IEC 10646, οπότε μπορούν να χρησιμοποιηθούν για την απεικόνιση κειμένων με κωδικοποίηση UTF-8, μπορείτε να χρησιμοποιήσετε την εντολή:

% xlsfonts | fgrep -i iso10646

Ακόμη περισσότερες γραμματοσειρές με υποστήριξη για απεικόνιση Ελληνικών χαρακτήρων μπορείτε να βρείτε στη συλλογή των Ports. Η κατηγορία x11-fonts περιέχει συλλογές γραμματοσειρών όπως οι παρακάτω:

Όλες αυτές οι γραμματοσειρές είναι σε μορφή TrueType®. Έτσι δεν έχουν τους περιορισμούς μεγέθους που έχουν οι βασικές, bitmap γραμματοσειρές, και μπορούν να απεικονίσουν Ελληνικούς χαρακτήρες σχεδόν σε οποιοδήποτε μέγεθος, με αρκετά ικανοποιητικά αποτελέσματα.

Αν χρησιμοποιείτε κάποιο από τα δημοφιλή περιβάλλοντα εργασίας για Xorg, όπως το GNOME ή το KDE, οι TrueType γραμματοσειρές από αυτές τις συλλογές βελτιώνουν πάρα πολύ την ποιότητα απεικόνισης σε όλες τις εφαρμογές του περιβάλλοντος εργασίας. Οπότε σίγουρα αξίζει τον κόπο να τις δοκιμάσετε.


5 Ρυθμίσεις για Ελληνικά σε διάφορες εφαρμογές.

Για να διαβάζουμε και να γράφουμε ISO/IEC 8859-7 Ελληνικά με τον επεξεργαστή κειμένου editors/emacs θα πρέπει να προσθέσουμε στο .emacs του λογαριασμού μας τις εξής ρυθμίσεις:

(setq unibyte-display-via-language-environment t)
(if (< emacs-major-version 22)
    (set-language-environment "Greek"))
(set-terminal-coding-system 'greek-iso-8bit)
(set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)

Για να διαβάζουμε και να γράφουμε ελληνικά με τον επεξεργαστή κειμένου editors/vim σε γραφικό περιβάλλον, θα πρέπει να προσθέσουμε στο αρχείο .vimrc του λογαριασμού μας τις εξής ρυθμίσεις:

set gfs=fixedgr

Για να διαβάζουμε και να γράφουμε ελληνικά με το πρόγραμμα ηλεκτρονικής αλληλογραφίας mutt θα πρέπει να προσθέσουμε στο .muttrc το παρακάτω κομμάτι:

set charset="greek"
set send_charset="US-ASCII:ISO-8859-1:ISO-8859-7:UTF-8"

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.