14.9 Lokalisierung
Unter Lokalisierung versteht man die Anpassung an lokale Gegebenheiten. Im Fall von Linux und BSD ist dies die Anpassung an deutsche Gegebenheiten wie die Verwendung eines deutschen Tastaturlayouts oder der deutschen Sprache in der Ausgabe von Programmen.
Wenn es um Lokalisierung geht, trifft man oft auf die Abkürzungen i18n oder auch l10n. Sie stehen für Internationalization beziehungsweise Localization. Bei beiden Wörtern hat man die mittleren Buchstaben ausgelassen und durch ihre jeweilige Anzahl ersetzt.
14.9.1 Tastaturbelegung
Nach der Installation einer Linux-Distribution bzw. der Installation eines BSD-Derivats ist das System oftmals nicht auf die deutsche Tastaturbelegung konfiguriert. Dies möchte man in der Regel verändern, was allerdings von Derivat zu Derivat und innerhalb der Linux-Distributionen unterschiedlich gelöst wird.
[»]Die folgenden Informationen beziehen sich auf die Konsole. Die Veränderungen werden nicht für die grafische Oberfläche (X11) übernommen. Wie Sie die deutsche Tastaturbelegung unter X11 einstellen, erfahren Sie in Kapitel 22.
Linux
Normalerweise wird unter Linux das Tastaturlayout bereits während der Installation festgelegt. Sollten Sie es einmal ändern wollen, so ist dies natürlich möglich.
Mit dem Tool loadkeys kann man eine Tastaturbelegung laden. Die einzelnen Belegungsdefinitionen befinden sich in der Regel im Verzeichnis /usr/share/kdb/keymaps. Dort wechselt man in das Unterverzeichnis seiner Plattform (für die Intel-Architektur ist dies i386/) und anschließend in das Unterverzeichnis, dessen Name die Reihenfolge der Buchstaben oben links auf der Tastatur wiedergibt. Für deutsche Tastaturen ist dies das Verzeichnis qwertz/.
Die einzelnen map.gz-Dateien sind komprimierte Tastaturcodierungen, die nun geladen werden können. Die deutsche Tastaturbelegung zaubert man natürlich aus dem Verzeichnis qwertz/ mit der Datei de-latin1-nodeadkeys.map.gz herbei, wie es auch in der Slackware-Installation im Anhang beschrieben ist. Um nun beispielsweise die schwedische – ein schönes Land, finden Sie nicht? – Tastaturbelegung zu laden, lädt man aus dem Verzeichnis qwerty/ die Datei se-lat6.map.gz auf folgende Weise:
Listing 14.110 Talar du svenska?
# loadkeys se-lat6.map.gz
Um die gewählte Tastaturbelegung nun permanent zu verwenden (also auch nach einem Neustart), muss man sie in der entsprechenden Konfigurationsdatei der jeweiligen Distribution eintragen. Da die Distributionen leider viele unterschiedliche Dateien für diesen Zweck verwenden, sei das Universalbeispiel von Slackware"=Linux genannt, das Sie praktisch überall einsetzen können: Man verwendet ein Shellskript, das nach allen anderen Skripten beim Systemstart ausgeführt wird. Unter Slackware ist dies /etc/rc.d/rc.keymap. Es besteht aus den folgenden Zeilen:
Listing 14.111 Keymap-Startkonfiguration
#!/bin/sh
# Load the keyboard map. More maps are in
# /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
/usr/bin/loadkeys de-latin1-nodeadkeys.map
fi
OpenBSD
Unter OpenBSD steht Ihnen nach der Installation zunächst nur die standardmäßige amerikanische Tastaturbelegung zur Verfügung. Um diese zu verändern, müssen Sie mit dem Programm wsconsctl die Belegung auf »de« umstellen.
Listing 14.112 Tastaturbelegung abfragen
root# wsconsctl -a | grep keyboard
wsconsctl: Use explicit arg to view keyboard.map.
keyboard.type=pc-xt
keyboard.bell.pitch=400
keyboard.bell.period=100
keyboard.bell.volume=50
keyboard.bell.pitch.default=400
keyboard.bell.period.default=100
keyboard.bell.volume.default=50
keyboard.repeat.del1=400
keyboard.repeat.deln=100
keyboard.repeat.del1.default=400
keyboard.repeat.deln.default=100
keyboard.ledstate=2
keyboard.encoding=de
Listing 14.113 Die deutsche Tastaturbelegung einstellen
root# wsconsctl keyboard.encoding=de
keyboard.encoding -> de
Um diese Veränderung jedoch permanent zu machen, sollte der Eintrag keyboard.encoding=de in der Datei /etc/wsconsctl.conf eingebaut werden.
NetBSD
Unter NetBSD geht man ähnlich vor wie unter OpenBSD. Man setzt ebenfalls mit wsconsctl eine entsprechende Variable auf den Wert »de«.
Listing 14.114 Deutsche Tastaturbelegung unter NetBSD
# wsconsctl -k -w encoding=de
Um diese Veränderung permanent zu machen, wird auch diesmal ein Eintrag in einer zugehörigen Konfigurationsdatei abgelegt, der aus einer einzelnen Zeile besteht. Diesmal muss dafür die Zeile encoding=de in /etc/wscons.conf platziert werden.
[»]Achten Sie darauf, dass die rc-Variable WSCONS auf YES gesetzt ist, damit die Datei wscons.conf verarbeitet wird.
FreeBSD
Unter FreeBSD setzt man den Wert für die (deutsche) Tastaturbelegung mit kbdcontrol bzw. kbdmap.
Listing 14.115 Deutsche Tastaturbelegung unter FreeBSD
# kbdcontrol -l german.iso
Für eine dauerhafte Verwendung des gewünschten Tastaturlayouts muss in /etc/rc.conf der folgende Eintrag platziert werden:
Listing 14.116 Dauerhafte Veränderungen
keymap=german.iso
14.9.2 Deutsche Sprache
LANG
Die Lokalisierung umfasst aber nicht nur das Tastaturlayout, sondern natürlich auch die deutsche Sprache bei der Ausgabe von Befehlen. Für die Konsole beziehungsweise auch die grafischen Shells unter X11 setzt man dabei am besten die zugehörigen Umgebungsvariablen in der eigenen ~/.bashrc:
Listing 14.117 Spracheinstellungen setzen
# Die wichtigste Umgebungsvariable für Sprachen:
# Wir wollen eine deutsche Umgebung mit Euro-Zeichen
LANG=de_DE@euro
# Einige Programme nutzen auch die LANGUAGE-Variable
# Hier geben wir unsere Präferenzen an: erst Deutsch,
# und wenn das nicht verfügbar ist, Englisch.
LANGUAGE=de_DE:de:en_GB:en
# Variablen exportieren
export LANG LANGUAGE
Für unsere Leser aus Österreich wäre der betreffende Wert natürlich de_AT und für die deutschsprachige Schweiz de_CH. Ältere Systeme benutzen meist noch die LC_ALL-Variable, um die Systemumgebung zu setzen:
Listing 14.118 Ältere Systeme
export LC_ALL=de
Bei der grafischen Oberfläche X11 ist es wiederum eine Frage des Window-Managers, in welcher Sprache man begrüßt wird. Bei KDE beispielsweise wird man beim ersten Start gefragt, welche Sprache beziehungsweise welche Umgebung man bevorzugt. Hat man die entsprechenden i18n-Pakete installiert, wird einem hier auch die eigene Sprache angeboten.
14.9.3 Einstellen der Uhr
Dass man mit date die Uhrzeit anzeigt und einstellt, wissen Sie bereits. Was Ihnen aber noch fehlt, ist das Verständnis der Zusammenhänge rund um die Uhr.
Wie Linux die Zeit versteht
Beim Booten wird die Hardwarezeit des BIOS vom Kernel ausgelesen. In der Regel wird diese in UTC, also in der internationalen Standardzeit, laufen. Unter Linux bereitet dies keine Probleme, da die Uhr nicht von Sommerzeit auf Winterzeit umgestellt werden muss. Wer dagegen manchmal auch Windows startet, hat mit der Hardwarezeit in UTC Probleme und wird die Uhr daher eher auf die lokale Zeit stellen.
Unix-Zeit
Auf jeden Fall berechnet Linux aus dieser Zeit die Unix-Zeit, die Anzahl der Sekunden (in UTC) seit dem 1. Januar 1970. (Dieser Zeitpunkt ist im Sprachgebrauch der Geschichtswissenschaft die Epoche der Unix-Ära, und für ihn ist daher auch die englische Bezeichnung epoch in Gebrauch.) Den Wert der bisher verstrichenen Sekunden bezeichnet man auch als die Systemzeit des Kernels. Möchte sich der Benutzer die Uhrzeit anzeigen lassen, wird aus diesem Wert und dem Wissen über die Zeitzone des Benutzers die entsprechende Zeichenkette generiert.
Die Zeitzone einstellen
Die Zeitzone regelt man über die Datei /etc/localtime, die auf die entsprechende Zeitzone unter /usr/share/zoneinfo verlinkt. Auf deutschen Systemen sollte man also diesen Link setzen:
Listing 14.119 Der localtime-Link
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 2005-12-05 16:56 \
/etc/localtime -> /usr/share/zoneinfo/Europe/Berlin
Anschließend kann wie gewohnt die Zeit über date eingestellt werden.
Die Hardwareuhr
UTC oder lokal?
Anschließend kann man die Hardwareuhr mittels hwclock setzen. Dabei macht es natürlich einen Unterschied, ob die Uhr auf UTC oder auf die lokale Zeit gestellt werden soll:
Listing 14.120 Die Hardwareuhr auf UTC stellen
# hwclock -wu
Listing 14.121 Die Hardwareuhr auf lokale Zeit stellen
# hwclock -w
Beim Booten wird übrigens ebenfalls hwclock ausgeführt – allerdings mit der Option -s, um nicht die Hardware-, sondern die Systemuhr zu stellen. Die Option -u entscheidet auch hier wieder darüber, ob die Hardwareuhr als UTC oder lokale Zeit interpretiert werden soll.
14.9.4 Texte von anderen Plattformen
Manchmal kommt man in die Verlegenheit, einen unter Windows erstellten Text unter Linux verarbeiten zu wollen – oder auch anders herum. Probleme gibt es vor allem bei den Zeilenenden: Linux nimmt dafür einen Zeilenvorschub, Mac-Systeme nehmen einen Wagenvorlauf und Windows nimmt gleich beides.
Um Texte zwischen den Systemen austauschen zu können, hilft das Programm recode. Damit kann man sich – am besten ebenfalls in der eigenen ~/.bashrc-Datei – ein paar nützliche Aliase definieren:
Listing 14.122 Texte konvertieren
alias unix2dos='recode lat1.ibmpc'
alias dos2unix='recode ibmpc.lat1'
alias unix2mac='recode lat1.mac'
alias mac2unix='recode mac.lat1'
Anschließend kann man unter Nutzung der Aliase einfach und schnell Texte für die jeweilige Plattform erstellen beziehungsweise von ihr konvertieren.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.