Das FreeBSD-Handbuch
Zurück | Kapitel 24. Lokalisierung – I18N/L10N einrichten und benutzen | Weiter

# 24.3. Lokale Anpassungen benutzen

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

## 24.3.1. Sprach- und Ländercodes

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

## 24.3.2. Codierungen

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

> Anmerkung: Ab FreeBSD 4.5 werden X11-kompatible Codierungen verwendet.

## 24.3.3. I18N-Anwendungen

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.

## 24.3.4. Einstellen der Locale

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.

### 24.3.4.1. Verfahren zum Einstellen der Locale

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.

#### 24.3.4.1.1. Lokalisierung in der Login-Klasse

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.

##### 24.3.4.1.1.1. Einrichten als Benutzer

`.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:

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

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:

    #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

Weitere Informationen entnehmen Sie bitte login.conf(5).

##### 24.3.4.1.1.2. Einrichten als Administrator

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:

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

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.

#### Ändern der Login-Klasse mit vipw(8)

Wenn Sie neue Accounts mit `vipw` anlegen, erstellen Sie Einträge in folgender Art:

    user:password:1111:11:Sprache:0:0:Benutzername:/home/user:/bin/sh

#### Ändern der Login-Klasse mit adduser(8)

Wenn Sie neue Accounts mit `adduser` anlegen, stehen Ihnen die folgenden Möglichkeiten zur Verfügung:

- Geben Sie in `/etc/adduser.conf` mit `defaultclass = `Sprache`` eine Sprache vor. In diesem Fall müssen Sie für Benutzer anderer Sprachen eine andere Login-Klasse angeben.

- 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

#### Ändern der Login-Klasse mit pw(8)

Wenn Sie neue Accounts mit pw(8) anlegen, benutzen Sie die folgende Kommandozeile:

    # pw useradd Account -L Sprache

#### 24.3.4.1.2. Lokalisierung in den Startdateien der Shells

> Anmerkung: 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

## 24.3.5. Einrichten der Konsole

Wenn Sie C-char Zeichensätze[1] verwenden, müssen Sie die richtigen Zeichensätze für die gewählte Sprache in `/etc/rc.conf` angeben:

    font8x16=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 Configure und dann Console wählen. Sie können die Zuordnungen aber auch direkt in `/etc/rc.conf` angeben:

    scrnmap=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:

    moused_enable="YES"

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:

    mousechar_start=3

`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/`Sprache`` 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 | Port
--- | ---
traditionelles Chinesisch (BIG-5) | `chinese/big5con`
Japanisch | `japanese/kon2-16dot` oder `japanese/mule-freewnn`
Koreanisch | `korean/han`

## 24.3.6. Einrichten von X11

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.

### 24.3.6.1. Zeichensätze

Installieren Sie den Xorg-Server (`x11-servers/xorg-server`) und die TrueType® Zeichensätze Ihrer Sprache. Wenn Sie die Locale gesetzt haben, sollten die Menüs in Ihrer Sprache erscheinen.

### 24.3.6.2. Eingabe von nicht-englischen Zeichen

Das X11 Input Method (XIM) Protokoll ist ein neuer Standard für alle X11-Clients. Jede X11-Anwendung sollte als XIM-Client, der Eingaben von einem XIM-Server entgegen nimmt, implementiert sein. XIM-Server sind für verschiedene Sprachen erhältlich.

## 24.3.7. Einrichten eines Druckers

Drucker verfügen normalerweise schon über einige C-char Zeichensätze[1]. 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.

## 24.3.8. Kernel und Dateisysteme

Das FreeBSD-Dateisystem (FFS) unterstützt 8-Bit, so dass es mit C-char Zeichensätzen[1] (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).

### Fußnoten

[1] | Mit C-char Zeichensätzen werden Zeichensätze bezeichnet, die zur Codierung den C-Datentyp `char` verwenden.

Zurück | Zum Anfang | Weiter
Grundlagen | Nach oben | I18N-Programme übersetzen

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>.