In seiner ganzen Schönheit ist L10N nichts, was auf FreeBSD alleine beschränkt ist, im Gegenteil, es ist eine Konvention, an die sich viele Programme für verschiedene Betriebssysteme halten. Wir möchten Sie anregen, FreeBSD bei der Unterstützung dieser Konvention zu helfen.
Lokale Anpassungen werden durch die Angabe von drei Werten erreicht: dem Sprachcode, dem Ländercode und der Codierung. Die Zusammenfassung dieser Werte wird „Locale“ genannt und sieht wie folgt aus:
Sprachcode
_Ländercode
.Codierung
Um FreeBSD (oder ein anderes UNIX® System, das I18N unterstützt) an lokale Gegebenheiten und Sprachen anzupassen, muss der Benutzer herausfinden, welche Codes für sein Land und seine Sprache benutzt werden. Ländercodes geben den Anwendungen dabei vor, welche Variation einer bestimmten Sprache zu benutzen ist. Eine Variation von Deutsch wäre zum Beispiel de_CH, das eine lokale Anpassung an das in der Schweiz gesprochene Deutsch meint. Außerdem benutzen Webbrowser, SMTP/POP Server, Webserver usw. diese, um Entscheidungen über die Sprache zu fällen. Im Folgenden sind einige Beispiele für Sprach- und Ländercodes aufgelistet:
Sprachcode/Ländercode | Beschreibung |
---|---|
en_US | Englisch - USA |
ru_RU | Russisch für Russland |
zh_TW | Traditionelles Chinesisch für Taiwan |
Einige Sprachen benutzen Codierungen, die nicht dem 7-Bit breitem ASCII-Standard entsprechen, wie 8-Bit Codierungen, Wide- oder Multibyte Zeichen (multibyte(3) geht darauf näher ein). Ältere Anwendungen erkennen diese Zeichen nicht und halten sie fälschlicherweise für Steuerzeichen. Neuere Anwendungen erkennen für gewöhnlich 8-Bit Zeichen. Es hängt allerdings von der Implementierung ab, ob man eine Anwendung neu kompilieren muss, um in den Genuss von lokalen Zeichensätzen zu kommen, oder ob man es sie nur nachträglich konfigurieren muss. Um es möglich zu machen, Wide- oder Multibyte-Zeichen einzugeben und zu verarbeiten, unterstützt die FreeBSD-Ports-Sammlung verschiedene Sprachen für diverse Programme. Bitte konsultieren Sie die I18N-Dokumentation des entsprechenden FreeBSD-Ports.
In den meisten Fällen muss der Benutzer in die Dokumentation des Programms schauen, um herauszufinden, wie man es entsprechend für die eigene Sprache und den eigenen Zeichensatz konfiguriert, oder welche Optionen beim Übersetzen anzugeben sind.
Einige Dinge, die man im Hinterkopf behalten sollte, sind:
Sprachbezogene C-char Zeichensätze[14] (siehe multibyte(3)), zum Beispiel ISO8859-1, ISO8859-15, KOI8-R, CP437.
Wide- oder Multibyte-Codierungen, zum Beispiel EUC, Big5.
Eine aktuelle Liste der Zeichensätze ist in der IANA Registry. verfügbar.
Ab FreeBSD 4.5 werden X11-kompatible Codierungen verwendet.
Im FreeBSD-Ports- und Paket-System werden I18N-Anwendungen
mit einem I18N
im Namen gekennzeichnet,
damit man sie leicht identifizieren kann. Trotzdem kann es
vorkommen, dass die benötigte Sprache nicht immer
unterstützt wird.
Zum Aktivieren der Lokalisierung reicht es, die Umgebungsvariable
LANG
in Ihrer Login-Shell auf den Wert der Locale zu
setzen und die Variable zu exportieren. Dies geschieht normalerweise
in Ihrer ~/.login_conf
oder der Startdatei
Ihrer Shell (~/.profile
,
~/.bashrc
, ~/.cshrc
).
Wenn LANG
gesetzt ist, brauchen die speziellen
Variablen wie LC_CTYPE
oder LC_CTIME
in der Regel nicht gesetzt zu werden. Sie sollten sprachbezogene
FreeBSD-Dokumentation zu Rate ziehen, wenn Sie mehr Informationen
wünschen.
Setzen Sie die zwei folgenden Umgebungsvariablen in Ihren Konfigurationsdateien:
LANG
für Funktionen der
POSIX® setlocale(3) Familie
MM_CHARSET
gibt den den MIME
Zeichensatz von Anwendungen an
Damit ist die Locale für die Shell, jede Anwendung und X11 eingestellt.
Es gibt zwei Wege, die Locale zu setzen, die im Folgenden beschrieben werden. Die erste und empfohlene Methode ist, die Umgebungsvariablen in der Login-Klasse zu setzen, die zweite ist, sie in den Startdateien der Shell zu setzen.
Wenn Sie diese Methode verwenden, werden die Umgebungsvariablen für die Locale und den MIME Zeichensatz einmal für alle Shells, anstatt einzeln für jede Shell, gesetzt. Die Lokalisierung kann von einem Benutzer selbst oder von einem Administrator mit Superuser-Rechten für alle eingestellt werden.
.login_conf
im Heimatverzeichnis
eines Benutzers sollte mindestens die folgenden Einträge
enthalten, damit beide Variablen für den Gebrauch der
Latin-1 Codierung gesetzt werden:
Damit traditionelles Chinesisch (BIG-5 Codierung)
verwendet werden kann, sind in .login_conf
die nachstehenden Ergänzungen vorzunehmen. Einige
Programme behandeln die Lokalisierung für Chinesisch,
Japanisch und Koreanisch falsch, daher müssen mehr
Variablen als üblich gesetzt werden:
Weitere Informationen entnehmen Sie bitte login.conf(5).
Stellen Sie sicher, dass in der Login-Klasse der
Benutzer in /etc/login.conf
die richtige
Sprache eingestellt ist. Die folgenden Einstellungen
müssen in /etc/login.conf
vorgenommen werden:
Sprache
|Account-Typ-Beschreibung
:\
:charset=MIME_Zeichensatz
:\
:lang=Locale
:\
:tc=default:Die für Latin-1 erforderlichen Einträge sehen wie folgt aus:
Bevor Sie die Login-Klasse eines Benutzers ändern, müssen Sie den folgenden Befehl ausführen:
#
cap_mkdb /etc/login.conf
Erst danach werden Ihre Änderungen in
/etc/login.conf
im System
sichtbar.
Wenn Sie neue Accounts mit vipw
anlegen, erstellen Sie Einträge in folgender Art:
Sprache
:0:0:Benutzername:/home/user:/bin/shWenn Sie neue Accounts mit adduser
anlegen, stehen Ihnen die folgenden Möglichkeiten zur
Verfügung:
Geben Sie in /etc/adduser.conf
mit defaultclass =
eine Sprache
vor. In diesem Fall müssen Sie für Benutzer
anderer Sprachen eine andere Login-Klasse angeben.Sprache
Geben Sie die Sprache jedes Mal ein, wenn Sie dazu von adduser(8) aufgefordert werden:
Enter login class: default []:
Sie können die Login-Klasse auch auf der Kommandozeile von adduser(8) übergeben:
#
adduser -class Sprache
Wenn Sie neue Accounts mit pw(8) anlegen, benutzen Sie die folgende Kommandozeile:
#
pw useradd Account
-L Sprache
Da Sie jede Shell unterschiedlich einrichten müssen, sollten Sie diese Methode nicht verwenden. Benutzen Sie stattdessen bitte Login-Klassen.
Um die Locale und den MIME Zeichensatz anzugeben, setzen
Sie die unten aufgeführten Variablen in den Startdateien
der Shells (/etc/profile
und
/etc/csh.login
). In den folgenden
Beispielen verwenden wir die deutsche Sprache.
Einstellungen in /etc/profile
:
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
Einstellungen in /etc/csh.login
:
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
Alternativ können Sie die Einstellungen in den
Vorgabedateien der Shells vornehmen. Die oben gezeigten
Einstellungen aus /etc/profile
tragen Sie
dann in /usr/share/skel/dot.profile
und
die Einstellungen aus /etc/csh.login
in
/usr/share/skel/dot.login
ein.
Die Einstellungen für X11 in
$HOME/.xinitrc
sind von der verwendeten
Login-Shell abhängig. Mit Bourne Shells
verwenden Sie den folgenden Eintrag:
LANG=de_DE.ISO8859-1; export LANG
Mit C-Shells verwenden Sie den nachstehenden Eintrag:
setenv LANG de_DE.ISO8859-1
Wenn Sie C-char Zeichensätze[14]
verwenden, müssen Sie die richtigen Zeichensätze für die
gewählte Sprache in /etc/rc.conf
angeben:
Zeichensatz
font8x14=Zeichensatz
font8x8=Zeichensatz
Dabei ist Zeichensatz
der Name der
passenden Datei aus /usr/share/syscons/fonts
ohne die Endung .fnt
.
Setzen Sie bei Bedarf die richtige Tasten- und
Bildschirmzuordnung (keymap und screenmap). Dies
können Sie in sysinstall
einstellen, indem Sie und dann
wählen. Sie können
die Zuordnungen aber auch direkt in /etc/rc.conf
angeben:
screenmap_name
keymap=keymap_name
keychange="fkey_number sequence
"screenmap_name
ist der Name einer
Datei aus /usr/share/syscons/scrnmaps
ohne die
Endung .scm
. Eine Bildschirmzuordnung und der
zugehörige Zeichensatz verbreitert die Zeichenmatrix von
VGA Karten im Pseudographik Modus von 8 Bit auf 9 Bit.
Sie wird benötigt, wenn der Zeichensatz des Bildschirms
8 Bit verwendet.
Lesen Sie den nächsten Absatz, wenn Sie in
/etc/rc.conf
den
moused Dæmon mit der nachstehenden
Anweisung aktiviert haben:
Der Mauszeiger des syscons(4) Treibers belegt in der Voreinstellung den Bereich von 0xd0 bis 0xd3 des Zeichensatzes. Wenn dieser Bereich ebenfalls von der eingestellten Sprache benötigt wird, müssen Sie den Mauszeiger verschieben. Dazu fügen Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei ein:
keymap_name
ist der Name einer Datei
aus /usr/share/syscons/keymaps
ohne die Endung
.kbd
. Welche Tastenzuordnung Sie benutzen
müssen, können Sie ohne einen Neustart mit kbdmap(1)
ausprobieren.
Mit keychange
können die
Funktionstasten so programmiert werden, dass Sie zu dem
ausgesuchten Terminal passen. Die Sequenzen der Funktionstasten
können nicht in Tastenzuordnungen definiert werden.
Stellen Sie sicher, dass der richtige Terminaltyp für
die ttyv*
Konsolen in
/etc/ttys
angegeben ist. Momentan sind die
folgenden Terminaltypen definiert:
Zeichensatz | Terminaltyp |
---|---|
ISO8859-1 oder ISO8859-15 | cons25l1 |
ISO8859-2 | cons25l2 |
ISO8859-7 | cons25l7 |
KOI8-R | cons25r |
KOI8-U | cons25u |
CP437 (VGA default) | cons25 |
US-ASCII | cons25w |
Mit Wide- oder Multibyte-Zeichensätzen müssen Sie den
richtigen Port aus dem Verzeichnis
/usr/ports/
verwenden. Einige Ports erscheinen als Konsolen werden aber vom
System als serielle vtty's betrachtet. Achten Sie daher darauf,
dass Sie genügend vtty's für X11 und die
Pseudo-seriellen Konsolen definiert haben. Nachstehend finden Sie
eine unvollständige Liste der Ports, die eine andere Sprache
als Englisch auf der Konsole verwenden:Sprache
Sprache | Port |
---|---|
traditionelles Chinesisch (BIG-5) | chinese/big5con |
Japanisch | japanese/kon2-16dot oder
japanese/mule-freewnn |
Koreanisch | korean/han |
Obwohl X11 nicht Teil des FreeBSD Projects ist, stellen wir hier einige Hinweise für FreeBSD-Benutzer zusammen. Weitere Details entnehmen Sie bitte der Xorg Website oder der Dokumentation Ihres X11 Servers.
Anwendungsspezifische I18N-Einstellungen (Zeichensätze,
Menüs, usw.) können Sie in ~/.Xresources
vornehmen.
Drucker verfügen normalerweise schon über einige C-char Zeichensätze[14]. Wide- oder Multibyte-Zeichensätze müssen gesondert eingerichtet werden. Wir empfehlen Ihnen, dazu apsfilter zu benutzen. Weiterhin können Sie mit sprachspezifischen Konvertern Ihre Dokumente auch in PostScript® oder PDF umwandeln.
Das FreeBSD-Dateisystem (FFS) unterstützt 8-Bit, so dass es mit C-char Zeichensätzen[14] (siehe multibyte(3)) verwendet werden kann. Der Zeichensatz wird allerdings nicht im Dateisystem gespeichert, das heißt es werden nur die 8-Bit Werte gespeichert und die Codierung wird nicht berücksichtigt. Offiziell werden Wide- oder Multibyte-Zeichensätze noch nicht unterstützt, für einige Zeichensätze existieren Patche, die eine solche Unterstützung aktivieren. Sie sind allerdings nicht im Quelltext enthalten, da sie nur schwer pflegbare Übergangslösungen sind. Die Patche und weitere Informationen erhalten Sie auf den Webseiten der betreffenden Sprache.
Das MS-DOS® Dateisystem von FreeBSD kann von MS-DOS®- und Unicode-Zeichensätzen nach frei wählbaren FreeBSD Zeichensätzen konvertieren. Weitere Details entnehmen Sie bitte mount_msdosfs(8).
[14] Mit C-char Zeichensätzen werden Zeichensätze
bezeichnet, die zur Codierung den C-Datentyp
char
verwenden.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.