<?xml version="1.0" encoding="UTF-8"?>


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


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

<nickkokkalis@yahoo.co.uk>
Αναθεώρηση: 43126
 νευματικά Δικαιώματα © 2006-2008 Νικόλαος
Κόκκαλης
Το FreeBSD είναι ένα κατοχυρωμένο εμπορικό
σύμβολο του FreeBSD Foundation.
 ολλές από τις λέξεις ή φράσεις οι οποίες
χρησιμοποιούνται από τους κατασκευαστές ή
τους πωλητές τους για να διακρίνουν τα
προϊόντα τους θεωρούνται εμπορικά σύμβολα.
Όπου αυτές εμφανίζονται σε αυτό το κείμενο
και για όσες από αυτές γνωρίζει η Ομάδα
Ανάπτυξης του FreeBSD ότι είναι πιθανόν να
είναι εμπορικά σύμβολα, θα δείτε ένα από τα
σύμβολα: «™» ή «®».
2013-11-07 από gabor.
 ερίληψη
Αυτό το κείμενο δίνει οδηγίες για τις
ρυθμίσεις που χρειάζονται, ώστε να
μπορούμε να διαβάσουμε και να γράψουμε
Ελληνικά στο FreeBSD, τόσο σε κατάσταση
κονσόλας όσο και χρησιμοποιώντας το
γραφικό περιβάλλον Xorg.
-------------------------------------------------------------------------------
 ίνακας  εριεχομένων


  1._Εισαγωγή

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

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

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

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


1. Εισαγωγή

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

*  ου θα βρείτε Ελληνικές γραμματοσειρές,
  τόσο για την κονσόλα του FreeBSD όσο και για
  Xorg.
*  ώς να ορίσετε μια αντιστοιχία
  πληκτρολογίου («keymap») σε κατάσταση
  κονσόλας, η οποία να επιτρέπει την
  εισαγωγή Ελληνικού κειμένου, με την
  κωδικοποίηση ISO/IEC{{{nbsp}}}8859-7.
*  ώς να ορίσετε ότι η προκαθορισμένη
  γραμματοσειρά σε κατάσταση κονσόλας θα
  είναι κάποια που έχει Ελληνικούς
  χαρακτήρες.
*  ώς να ορίσετε μια αντιστοιχία
  πληκτρολογίου («keymap») σε κατάσταση
  γραφικών, η οποία να επιτρέπει την
  εισαγωγή Ελληνικού κειμένου, με την
  κωδικοποίηση ISO/IEC{{{nbsp}}}8859-7.
*  ώς να στήσετε γραμματοσειρές για το
  γραφικό περιβάλλον του FreeBSD, οι οποίες θα
  έχουν υποστήριξη τόσο για UTF-8 όσο και για
  ISO/IEC{{{nbsp}}}8859-7 Ελληνικά.


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

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

* Ρυθμίσεις για την προκαθορισμένη
  γραμματοσειρά της κονσόλας και μια
  αντιστοιχία πληκτρολογίου με υποστήριξη
  για Ελληνικά.
* Ρυθμίσεις έτσι ώστε το περιβάλλον του
  κελύφους να υποστηρίζει την Ελληνική
  γλώσσα.


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

Για να μπορέσουμε να διαβάσουμε και να
γράψουμε Ελληνικά με την κωδικοποίηση ISO/IEC{
{{nbsp}}}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{{
{nbsp}}}8859-7, είτε για την κωδικοποίηση ISO/IEC{{
{nbsp}}}10646 (Universal Character Set). Οι βασικές bitmap
γραμματοσειρές που διανέμονται με το Xorg
έχουν στο τέλος από το όνομά τους την
κωδικοποίηση, οπότε μπορείτε να τις βρείτε
εύκολα με το εργαλείο xlsfonts(1). Για να δείτε,
για παράδειγμα, ποιές βασικές
γραμματοσειρές υποστηρίζουν την
κωδικοποίηση ISO/IEC{{{nbsp}}}8859-7 μπορείτε να
χρησιμοποιήσετε την εντολή:

  % xlsfonts | fgrep -i iso8859-7

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

  % xlsfonts | fgrep -i iso10646

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

* x11-fonts/bitstream-vera
* x11-fonts/dejavu
* x11-fonts/liberation-fonts-ttf
* x11-fonts/urwfonts-ttf
* x11-fonts/webfonts

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

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

Για να διαβάζουμε και να γράφουμε ISO/IEC{{
{nbsp}}}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"

