---
title: Υποστήριξη της Ελληνικής Γλώσσας στο FreeBSD
authors:
  - author: Νικόλαος Κόκκαλης
    email: nickkokkalis@yahoo.co.uk
trademarks: ["freebsd", "general"]
---

= Υποστήριξη της Ελληνικής Γλώσσας στο FreeBSD
:doctype: article
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:images-path: articles/greek-language-support/

ifdef::env-beastie[]
ifdef::backend-html5[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
:imagesdir: ../../../images/{images-path}
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[.abstract-title]
Περίληψη

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

'''

toc::[]

[[introduction]]
== Εισαγωγή

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

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

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

[[console-setup]]
== Ρυθμίσεις για Ελληνικά στην κονσόλα του FreeBSD

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

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

[[console-files]]
=== Ελληνική γραμματοσειρά και αντιστοιχία πληκτρολογίου για την κονσόλα

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

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

[source,shell]
....
# cd /usr/shared/syscons/fonts
# fetch 'http://people.freebsd.org/~keramida/files/grfixed-8x16.fnt'
# cd /usr/shared/syscons/keymaps
# fetch 'http://people.freebsd.org/~keramida/files/keramida.el-iso.kbd'
....

[[console-rc-conf]]
=== Ενεργοποίηση της Ελληνικής υποστήριξης στην κονσόλα

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

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

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

[source,shell]
....
% vidcontrol -f 8x16 grfixed-8x16 < /dev/ttyv0
% kbdcontrol -l keramida.el-iso < /dev/ttyv0
....

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

[[shell-locale]]
=== Ρυθμίσεις για το κέλυφος χρήστη

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

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

[[shell-sh]]
==== Ρυθμίσεις για το κέλυφος man:sh[1]

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

[.programlisting]
....
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
....

[[shell-csh]]
==== Ρυθμίσεις για το κέλυφος man:csh[1]

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

[.programlisting]
....
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
....

[[shell-bash]]
==== Ρυθμίσεις για το κέλυφος bash

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

[.programlisting]
....
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, πρέπει να βάλουμε και τις εξής ρυθμίσεις στο αρχείο [.filename]#.inputrc# του λογαριασμού μας:

[.programlisting]
....
set convert-meta Off
set input-meta On
set output-meta On
....

[[xorg-setup]]
== Ρυθμίσεις για Ελληνικά στο γραφικό περιβάλλον Xorg

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

Αρχικά, πρέπει να ρυθμίσετε το περιβάλλον Xorg έτσι ώστε να ξεκινά σωστά-ακόμη και χωρίς Ελληνικά. Για πληροφορίες σχετικά με τις πρώτες αυτές ρυθμίσεις, δείτε extref:{handbook}x11[το αντίστοιχο κεφάλαιο στο Εγχειρίδιο του FreeBSD, x11].

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

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

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

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

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

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

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

[.programlisting]
....
export LANG="el_GR.ISO8859-7"
export LC_CTYPE="el_GR.ISO8859-7"
export LC_COLLATE="el_GR.ISO8859-7"
....

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

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

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

[.programlisting]
....
ΌνομαResource: Τιμή του resource
....

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

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

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

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

[source,shell]
....
% xrdb -merge ~/.Xresources
....

====

[[x11-fonts]]
== Ελληνικές γραμματοσειρές για το περιβάλλον Xorg

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

[source,shell]
....
% xlsfonts | fgrep -i iso8859-7
....

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

[source,shell]
....
% xlsfonts | fgrep -i iso10646
....

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

* package:x11-fonts/bitstream-vera[]
* package:x11-fonts/dejavu[]
* package:x11-fonts/liberation-fonts-ttf[]
* package:x11-fonts/urwfonts-ttf[]
* package:x11-fonts/webfonts[]

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

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

[[various-apps]]
== Ρυθμίσεις για Ελληνικά σε διάφορες εφαρμογές.

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

[.programlisting]
....
(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)
....

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

[.programlisting]
....
set gfs=fixedgr
....

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

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