23.3. Χρήση των Τοπικών Ρυθμίσεων

Το I18N είναι στην πραγματικότητα μια σύμβαση, και δεν έχει δημιουργηθεί αποκλειστικά για το FreeBSD. Επιθυμούμε τη βοήθεια σας ώστε το FreeBSD να ακολουθεί αυτή τη σύμβαση.

Οι τοπικές ρυθμίσεις βασίζονται σε τρεις βασικούς όρους: Κωδικό Γλώσσας, Κωδικό Χώρας και Κωδικοποίηση. Τα ονόματα των τοπικών ρυθμίσεων προκύπτουν από τους παραπάνω όρους, με τον τρόπο που περιγράφεται παρακάτω:

ΚωδικόςΓλώσσας_ΚωδικόςΧώρας.Κωδικοποίηση

23.3.1. Κωδικοί Γλωσσών και Χωρών

Για να χρησιμοποιηθούν οι τοπικές ρυθμίσεις για μια συγκεκριμένη γλώσσα σε ένα σύστημα FreeBSD (ή σε άλλο σύστημα τύπου UNIX® που υποστηρίζει το πρότυπο I18N), ο χρήστης θα πρέπει να βρει τους κωδικούς της συγκεκριμένης χώρας και γλώσσας (οι κωδικοί χωρών καθοδηγούν τις εφαρμογές σχετικά με τη διάλεκτο της γλώσσας που πρέπει να χρησιμοποιηθεί). Προγράμματα όπως φυλλομετρητές, εξυπηρετητές ιστοσελίδων, εξυπηρετητές SMTP/POP κλπ. παίρνουν επίσης κάποιες αποφάσεις που εξαρτώνται από τους κωδικούς αυτούς. Παρακάτω φαίνονται μερικά παραδείγματα γλωσσών/χωρών:

Κωδικός Γλώσσας/ΧώραςΠεριγραφή
en_USΑγγλικά - Ηνωμένες Πολιτείες
ru_RUΡώσικα - Ρωσία
zh_TWΠαραδοσιακά Κινέζικα - Ταϊβάν

23.3.2. Κωδικοποιήσεις

Κάποιες γλώσσες χρησιμοποιούν κωδικοποιήσεις που δεν είναι ASCII, αλλά περιέχουν χαρακτήρες 8-bit, wide, ή multibyte (δείτε τη σελίδα manual multibyte(3) για περισσότερες πληροφορίες). Οι πιο καινούριες εφαρμογές συνήθως αναγνωρίζουν τους χαρακτήρες 8-bit. Ανάλογα με την υλοποίηση, οι χρήστες μπορεί να χρειάζεται να μεταγλωττίσουν μια εφαρμογή με υποστήριξη χαρακτήρων wide ή multibyte, ή να προσαρμόσουν τις ρυθμίσεις του προγράμματος. Για να έχετε την ικανότητα να εισάγετε και να επεξεργάζεστε χαρακτήρες multibyte, η Συλλογή των Ports του FreeBSD διαθέτει προγράμματα για κάθε γλώσσα. Δείτε την τεκμηρίωση για το I18N στο αντίστοιχο Port του FreeBSD.

Ειδικότερα, ο χρήστης χρειάζεται να διαβάσει την τεκμηρίωση της εφαρμογής, για να αποφασίσει πως πρέπει να τη ρυθμίσει σωστά ή πως να περάσει τις σωστές τιμές στο configure, το Makefile ή τον μεταγλωττιστή.

Θα πρέπει να έχετε κατά νου κάποια πράγματα:

  • Σετ χαρακτήρων που εξαρτώνται από τη γλώσσα (single C chars character set, δείτε την multibyte(3)), π.χ. ISO8859-1, ISO8859-15, KOI8-R, CP437.

  • Κωδικοποιήσεις Wide ή multibyte, π.χ. EUC, Big5.

Μπορείτε να δείτε την ενεργή λίστα των σετ χαρακτήρων στο Μητρώο IANA.

Σημείωση:

Το FreeBSD χρησιμοποιεί για τις τοπικές ρυθμίσεις κωδικοποιήσεις συμβατές με το X11.

23.3.3. Εφαρμογές I18N

Στο σύστημα πακέτων και ports του FreeBSD, οι εφαρμογές που σχετίζονται με το I18N έχουν στο όνομα τους τη λέξη I18N ώστε να αναγνωρίζονται εύκολα. Ωστόσο, μπορεί να μην υποστηρίζουν πάντοτε τη γλώσσα που χρειάζεστε.

23.3.4. Τοπικές Ρυθμίσεις

Είναι συνήθως αρκετό να γίνει export η τιμή με την ονομασία της επιθυμητής τοπικής ρύθμισης, μέσω της μεταβλητής περιβάλλοντος LANG στο κέλυφος εισόδου. Αυτό μπορεί να γίνει στο αρχείο ~/.login_conf του χρήστη, ή στο αρχείο εκκίνησης του κελύφους του χρήστη (~/.profile, ~/.bashrc, ~/.cshrc). Δεν είναι ανάγκη να θέσετε και τις υπόλοιπες μεταβλητές των τοπικών ρυθμίσεων, όπως οι LC_CTYPE, LC_CTIME. Για περισσότερες πληροφορίες, διαβάστε την τεκμηρίωση του FreeBSD που σχετίζεται με την υποστήριξη της επιθυμητής γλώσσας.

Θα πρέπει να θέσετε τις δύο παρακάτω μεταβλητές περιβάλλοντος, στα αρχεία ρυθμίσεων:

  • Την LANG για λειτουργίες που ανήκουν στην οικογένεια POSIX® setlocale(3)

  • Την MM_CHARSET για το σύνολο χαρακτήρων MIME των εφαρμογών.

Το παραπάνω περιλαμβάνει την ρύθμιση του κελύφους χρήστη, την ρύθμιση για μια συγκεκριμένη εφαρμογή, και τη ρύθμιση για τα X11.

23.3.4.1. Μέθοδοι Αλλαγής Τοπικών Ρυθμίσεων

Υπάρχουν δύο μέθοδοι για την αλλαγή των τοπικών ρυθμίσεων, τις οποίες και περιγράφουμε παρακάτω. Η πρώτη (την οποία και συνιστούμε) υλοποιείται θέτοντας τιμές στις μεταβλητές περιβάλλοντος στο login class, και η δεύτερη αλλάζοντας τις τιμές των μεταβλητών περιβάλλοντος στο αρχείο εκκίνησης του κελύφους του χρήστη.

23.3.4.1.1. Μέθοδος Κλάσεων Εισόδου (Login Class)

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

23.3.4.1.1.1. Ρυθμίσεις σε Επίπεδο Χρήστη

Το παρακάτω απλό παράδειγμα, δείχνει ένα αρχείο .login_conf στον κατάλογο κάποιου χρήστη στο οποίο και οι δύο μεταβλητές έχουν τεθεί για κωδικοποίηση Latin-1:

me:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:

Παρακάτω βλέπετε ένα .login_conf στο οποίο οι μεταβλητές έχουν τεθεί για Παραδοσιακά Κινέζικα σε κωδικοποίηση BIG-5. Παρατηρήστε ότι έχουμε θέσει πολύ περισσότερες μεταβλητές, καθώς κάποιες εφαρμογές δεν σέβονται σωστά τις μεταβλητές για Κινέζικα, Γιαπωνέζικα και Κορεάτικα.

#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
	:lang=zh_TW.Big5:\
	:setenv=LC_ALL=zh_TW.Big5:\
	:setenv=LC_COLLATE=zh_TW.Big5:\
	:setenv=LC_CTYPE=zh_TW.Big5:\
	:setenv=LC_MESSAGES=zh_TW.Big5:\
	:setenv=LC_MONETARY=zh_TW.Big5:\
	:setenv=LC_NUMERIC=zh_TW.Big5:\
	:setenv=LC_TIME=zh_TW.Big5:\
	:charset=big5:\
	:xmodifiers="@im=gcin": #Set gcin as the XIM Input Server

Για περισσότερες πληροφορίες, δείτε τις Ρυθμίσεις σε Επίπεδο Διαχειριστή και την login.conf(5).

23.3.4.1.1.2. Ρυθμίσεις σε Επίπεδο Διαχειριστή

Βεβαιωθείτε ότι έχει οριστεί η σωστή γλώσσα στην κλάση του χρήστη, στο αρχείο /etc/login.conf. Στο αρχείο αυτό θα πρέπει να υπάρχουν οι παρακάτω ρυθμίσεις:

language_name|Account Type Description:\
	:charset=MIME_charset:\
	:lang=locale_name:\
	:tc=default:

Με βάση το προηγούμενο παράδειγμα μας που χρησιμοποιήσαμε Latin-1, το αρχείο θα μοιάζει με το παρακάτω:

german|German Users Accounts:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:\
	:tc=default:

Πριν κάνετε αλλαγές στις Κλάσεις Εισόδου (Login Classes) των χρηστών, εκτελέστε την παρακάτω εντολή:

# cap_mkdb /etc/login.conf

ώστε να ενεργοποιηθούν στο σύστημα οι αλλαγές που κάνατε στο /etc/login.conf.

Αλλαγή Κλάσεων Εισόδου μέσω της vipw(8)

Χρησιμοποιήστε την vipw για να προσθέσετε νέους χρήστες, και κάντε την καταχώριση να μοιάζει με την παρακάτω:

user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh
Αλλαγή Κλάσεων Εισόδου μέσω της adduser(8)

Χρησιμοποιήστε την adduser για να προσθέσετε νέους χρήστες, και έπειτα ακολουθήστε τις παρακάτω οδηγίες:

  • Θέστε το defaultclass = language στο /etc/adduser.conf. Να έχετε υπόψη σας ότι σε αυτή την περίπτωση, θα πρέπει να ορίσετε μια κλάση default για όλους τους χρήστες άλλων γλωσσών.

  • Μια εναλλακτική λύση, είναι να απαντάτε κάθε φορά στην ερώτηση

    Enter login class: default []: 

    που εμφανίζεται από την adduser(8).

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

    # adduser -class language
Αλλαγή Κλάσεων Εισόδου μέσω της pw(8)

Αν χρησιμοποιείτε την pw(8) για να προσθέσετε νέους χρήστες, καλέστε την με τον παρακάτω τρόπο:

# pw useradd user_name -L language
23.3.4.1.2. Μέθοδος Αρχείων Εκκίνησης Κελύφους

Σημείωση:

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

Για να προσθέσετε τις τοπικές ρυθμίσεις και το σετ χαρακτήρων MIME, ρυθμίστε απλώς τις δύο μεταβλητές περιβάλλοντος που φαίνονται παρακάτω στο αρχείο /etc/profile ή/και στο /etc/csh.login. Θα χρησιμοποιήσουμε τα Γερμανικά ως γλώσσα για το παρακάτω παράδειγμα:

Στο /etc/profile:

LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET

Ή στο /etc/csh.login:

setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1

Εναλλακτικά, μπορείτε να προσθέσετε τις παραπάνω οδηγίες στο /usr/share/skel/dot.profile (αντίστοιχα με τις οδηγίες για το /etc/profile που είδαμε παραπάνω), ή στο /usr/share/skel/dot.login (αντίστοιχα με τις οδηγίες για το /etc/csh.login που είδαμε επίσης παραπάνω).

Για το X11:

Στο $HOME/.xinitrc:

LANG=de_DE.ISO8859-1; export LANG

Ή:

setenv LANG de_DE.ISO8859-1

Ανάλογα με το κέλυφος που χρησιμοποιείτε (δείτε παραπάνω).

23.3.5. Ρυθμίσεις για την Κονσόλα

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

font8x16=font_name
font8x14=font_name
font8x8=font_name

Το font_name εδώ προκύπτει από το αντίστοιχο αρχείο του καταλόγου /usr/share/syscons/fonts, αφαιρώντας την κατάληξη .fnt.

Αν χρειάζεται, χρησιμοποιήστε την κατάλληλη αντιστοίχηση πληκτρολογίου (keymap) και οθόνης για το σετ χαρακτήρων single C που χρησιμοποιείτε, μέσω του sysinstall. Μόλις εκτελέσετε το sysinstall, επιλέξτε το Configure, και έπειτα το Console. Εναλλακτικά, μπορείτε να προσθέσετε το παρακάτω στο /etc/rc.conf:

scrnmap=screenmap_name
keymap=keymap_name
keychange="fkey_number sequence"

Στην περίπτωση αυτή, το screenmap_name προέρχεται από ένα αρχείο του καταλόγου /usr/share/syscons/scrnmaps, χωρίς την κατάληξη .scm. Η αντιστοίχηση οθόνης μαζί με την αντίστοιχη γραμματοσειρά, χρησιμοποιείται συνήθως για την επέκταση του 8ου bit στο 9o, για κάρτες VGA που χρησιμοποιούν μήτρα χαρακτήρων με 8 στήλες.

Αν έχετε ενεργοποιημένο τον δαίμονα moused στο αρχείο /etc/rc.conf:

moused_enable="YES"

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

Ο προεπιλεγμένος δρομέας του ποντικιού που χρησιμοποιείται από το πρόγραμμα οδήγησης syscons(4), καταλαμβάνει τις θέσεις 0xd0-0xd3 του συνόλου χαρακτήρων. Αν αυτή η περιοχή χαρακτήρων δεν είναι διαθέσιμη στη γλώσσα που χρησιμοποιείτε, θα πρέπει να μετακινήσετε την περιοχή του δρομέα έξω από αυτήν. Για να γίνει αυτό στο FreeBSD, προσθέστε την ακόλουθη γραμμή στο /etc/rc.conf:

mousechar_start=3

Το keymap_name προέρχεται από ένα αρχείο του καταλόγου /usr/share/syscons/keymaps, χωρίς την κατάληξη .kbd. Αν δεν είστε σίγουρος για την αντιστοίχηση πληκτρολογίου που χρειάζεται να χρησιμοποιήσετε, μπορείτε να χρησιμοποιήσετε το kbdmap(1) για να κάνετε δοκιμές σε διάφορες αντιστοιχίσεις, χωρίς να χρειάζεται να κάνετε επανεκκίνηση.

Η λειτουργία keychange χρησιμοποιείται συνήθως για τον προγραμματισμό των πλήκτρων λειτουργιών (function keys), ώστε να ταιριάζουν με τον επιλεγμένο τύπο τερματικού, καθώς οι ακολουθίες των πλήκτρων λειτουργιών δεν μπορούν να καθοριστούν στις αντιστοιχίσεις πληκτρολογίου.

Βεβαιωθείτε επίσης ότι έχετε ρυθμίσει το σωστό τύπου τερματικού στο /etc/ttys για όλες τις καταχωρίσεις ttyv*. Τη δεδομένη στιγμή, οι προκαθορισμένες αντιστοιχίες είναι:

Σετ ΧαρακτήρωνΤύπος Τερματικού
ISO8859-1 ή ISO8859-15cons25l1
ISO8859-2cons25l2
ISO8859-7cons25l7
KOI8-Rcons25r
KOI8-Ucons25u
CP437 (προεπιλεγμένο VGA)cons25
US-ASCIIcons25w

Για γλώσσες με χαρακτήρες wide ή multibyte, χρησιμοποιήστε το σωστό FreeBSD port στον κατάλογο /usr/ports/language. Μερικές θύρες εμφανίζονται ως κονσόλα, ενώ το σύστημα τις βλέπει ως σειριακά vtty, και έτσι πρέπει να παρακρατήσετε αρκετά vtty, τόσο για το X11 όσο και για την ψευτό-σειριακή κονσόλα. Παρακάτω θα βρείτε μια μερικώς ενημερωμένη λίστα για χρήση άλλων γλωσσών στην κονσόλα:

ΓλώσσαΤοποθεσία
Παραδοσιακά Κινέζικα (BIG-5)chinese/big5con
Γιαπωνέζικαjapanese/kon2-16dot ή japanese/mule-freewnn
Κορεάτικαkorean/han

23.3.6. Ρύθμιση του X11

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

Στο αρχείο ~/.Xresources, μπορείτε επιπρόσθετα να αλλάξετε και άλλες ρυθμίσεις που σχετίζονται με το I18N (π.χ. γραμματοσειρές, μενού, κ.λ.π.).

23.3.6.1. Απεικόνιση Γραμματοσειρών

Εγκαταστήστε τον εξυπηρετητή Xorg (x11-servers/xorg-server) και έπειτα εγκαταστήστε τις γραμματοσειρές TrueType® για την επιθυμητή γλώσσα. Με τις σωστές τοπικές ρυθμίσεις, θα μπορείτε να δείτε την επιλεγμένη γλώσσα στα μενού και τα μηνύματα του γραφικού περιβάλλοντος.

23.3.6.2. Εισαγωγή μη-Αγγλικών Χαρακτήρων

Η μέθοδος εισόδου X11 (XIM, X11 Input Method), είναι ένα νέο πρότυπο για όλους τους πελάτες X11. Όλες οι εφαρμογές του X11 θα πρέπει να γράφονται ως πελάτες του XIM, και να λαμβάνουν είσοδο από εξυπηρετητές εισόδου XIM. Υπάρχουν διαθέσιμοι διάφοροι εξυπηρετητές XIM, για διαφορετικές γλώσσες.

23.3.7. Ρύθμιση Εκτυπωτή

Κάποια σετ χαρακτήρων single C είναι συνήθως ενσωματωμένα στο ίδιο το υλικό των εκτυπωτών. Τα σετ χαρακτήρων τύπου wide ή multibyte απαιτούν ειδικές ρυθμίσεις, και συνιστούμε να χρησιμοποιήσετε το apsfilter. Μπορείτε επίσης να μετατρέψετε το έγγραφο σας σε PostScript® ή PDF, χρησιμοποιώντας εργαλεία ειδικά φτιαγμένα για τη συγκεκριμένη γλώσσα.

23.3.8. Πυρήνας και Συστήματα Αρχείων

Το σύστημα αρχείων FFS (fast filesystem) του FreeBSD μπορεί να διαχειριστεί ονόματα αρχείων που ανήκουν σε σετ single C (είναι 8-bit clean, δείτε και το multibyte(3)), αλλά δεν αποθηκεύει το σετ χαρακτήρων που χρησιμοποιείται. Με άλλα λόγια, είναι 8-bit αλλά δεν γνωρίζει τίποτα για την κωδικοποίηση των χαρακτήρων. Επίσημα, το FFS δεν υποστηρίζει ακόμα σετ χαρακτήρων wide ή multibyte. Υπάρχουν ωστόσο κάποια ανεξάρτητα patches για το FFS που υποστηρίζουν αυτές τις δυνατότητες. Πρόκειται μόνο για προσωρινές και μη μεταφέρσιμες λύσεις ή hacks, και έχουμε αποφασίσει να μην τα περιλάβουμε στο κεντρικό δέντρο πηγαίου κώδικα. Δείτε τις ιστοσελίδες των αντίστοιχων γλωσσών για περισσότερες πληροφορίες και για να ανακτήσετε τα απαραίτητα αρχεία.

Το σύστημα αρχείων MS-DOS® στο FreeBSD έχει την δυνατότητα να ρυθμιστεί ώστε να μετατρέπει μεταξύ των σετ χαρακτήρων Unicode, του MS-DOS®, και του σετ χαρακτήρων που έχει επιλεγεί για το σύστημα αρχείων του FreeBSD. Για περισσότερες λεπτομέρειες, δείτε τη σελίδα manual mount_msdosfs(8).

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

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

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