Sprachcode_Ländercode.Codierung
Kapitel 22. Lokalisierung – I18N/L10N einrichten und benutzen
This translation may be out of date. To help with the translations please access the FreeBSD translations instance.
Table of Contents
22.1. Übersicht
FreeBSD ist ein verteiltes Projekt mit Nutzern und Mitwirkenden auf der ganzen Welt. Als solches unterstützt FreeBSD Lokalisierung für viele Sprachen, so dass Benutzer Daten in anderen Sprachen als Englisch anzeigen, eingeben und verarbeiten können. Sie können zwischen den meisten der verbreitetsten Sprachen der Welt wählen, unter anderem Chinesisch, Japanisch, Koreanisch, Französisch, Russisch, Vietnamesisch und Deutsch.
Der Begriff internationalization (englisch für Internationalisierung) wurde zu I18N abgekürzt, weil sich zwischen dem ersten und letzten Buchstaben des Worts 18 Buchstaben befinden. L10N benutzt die gleiche Namensgebung und ist eine Abkürzung des Wortes localization (englisch für Lokalisierung). Mit I18N/L10N-Methoden, -Protokollen und -Anwendungen können Benutzer eine Sprache ihrer Wahl verwenden.
Dieses Kapitel behandelt die Internationalisierung und Lokalisierung von FreeBSD. Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:
wie der Name einer Locale aufgebaut ist.
wie die Locale einer Login-Shell gesetzt wird.
wie die Konsole für nicht-englische Sprachen konfiguriert wird.
wie Xorg mit verschiedenen Sprachen benutzt wird.
wie I18N-fähige Anwendungen gefunden werden können.
Wo Sie weitere Informationen über verschiedene Sprachen finden.
Bevor Sie dieses Kapitel lesen, sollten Sie:
Wissen, wie Sie zusätzliche Anwendungen installieren.
22.2. Lokale Anpassungen benutzen
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 und Ländercode werden verwendet, um das Land und die spezifische Sprachvariation zu bestimmen. Gebräuchliche Sprach- und Ländercodes enthält dazu einige Beispiele:
Sprachcode_Ländercode | Beschreibung |
---|---|
en_US | Englisch, Vereinigte Staaten |
ru_RU | Russisch, Russland |
zh_TW | Traditionelles Chinesisch, Taiwan |
Eine vollständige Liste der verfügbaren Lokalisierungen erhalten Sie durch die Eingabe von:
% locale -a | more
Die aktuelle Ländereinstellung erhalten Sie mit:
% locale
Sprachspezifische Zeichensätze, wie ISO8859-1, ISO8859-15, KOI8-R und CP437 werden in multibyte(3) beschrieben. Eine Liste der Zeichensätze finden Sie in der IANA Registry.
Einige Sprachen, darunter Chinesisch und Japanisch, können nicht mit ASCII-Zeichen dargestellt werden und benötigen eine erweiterte Sprachcodierung mit Wide- oder Multibyte-Zeichen. EUC und Big5 sind Beispiele für Wide- oder Multibyte-Codierungen. Ältere Anwendungen erkennen diese Zeichen nicht und halten sie fälschlicherweise für Steuerzeichen, während neure Anwendungen diese Zeichen in der Regel erkennen. Es hängt allerdings von der Implementierung ab, ob man eine Anwendung neu kompilieren muss, um lokale Zeichensätze zu bekommen, oder ob sie nur richtig konfiguriert werden muss.
FreeBSD verwendet Xorg-kompatible Codierungen. |
Der Rest dieses Abschnitts beschreibt die verschiedenen Methoden zur Konfiguration von der Locale auf einem FreeBSD-System. Der folgende Abschnitt beschreibt den Bau von Anwendungen mit I18N-Unterstützung.
22.2.1. Einstellen der Locale für die Login-Shell
Die Einstellungen für Locale werden entweder in der ~/.login_conf des Benutzers, oder der Startdatei der Shell (~/.profile, ~/.bashrc oder ~/.cshrc) konfiguriert.
Zwei Umgebungsvariablen sollten konfiguriert werden:
LANG
, das die Locale einstellt.MM_CHARSET
, das den MIME Zeichensatz für Anwendungen einstellt.
Neben der Shell-Konfiguration des Benutzers sollten diese Variablen auch für spezifische Anwendungen und Xorg-Konfigurationen eingestellt werden.
Es gibt zwei Methoden, die Locale zu setzen: die erste und empfohlene Methode ist, die Umgebungsvariablen in der Login-Klasse zu setzen, die zweite Methode ist, sie in den Startdateien der Shell zu setzen. In den nächsten Abschnitten werden beide Methoden vorgestellt.
22.2.1.1. Lokalisierung in der Login-Klasse
Die erste Methode wird empfohlen, da sie die Umgebungsvariablen für die Login-Klasse und den MIME Zeichensatz für alle Shells zuweist. Die Lokalisierung kann von einem Benutzer selbst, oder vom Superuser für alle Benutzer 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:
me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:
Damit traditionelles Chinesisch (BIG-5 Codierung) verwendet werden kann, sind in ~/.login_conf des Benutzers 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,LC_COLLATE=zh_TW.Big5,LC_CTYPE=zh_TW.Big5,LC_MESSAGES=zh_TW.Big5,LC_MONETARY=zh_TW.Big5,LC_NUMERIC=zh_TW.Big5,LC_TIME= zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server
Alternativ kann der Superuser die Lokalisierung für alle Benutzer konfigurieren. Die folgenden Variablen in /etc/login.conf setzen die richtige Login-Klasse und den richtigen MIME Zeichensatz:
Sprache|Account-Typ-Beschreibung:\ :charset=MIME_Zeichensatz:\ :lang=Locale:\ :tc=default:
Die für Latin-1 erforderlichen Einträge würden wie folgt aussehen:
german|German Users Accounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default:
Weitere Einzelheiten über diese Variablen finden Sie in login.conf(5). Beachten Sie, dass die Datei bereits vordefinierte russische Login-Klassen enthält.
Jedes Mal, wenn /etc/login.conf bearbeitet wurde, muss die Datenbank mit dem folgenden Kommando aktualisiert werden:
# cap_mkdb /etc/login.conf
Der reguläre Benutzer muss den Befehl |
22.2.1.1.1. Werkzeuge zum Ändern der Login-Klasse
Neben der manuellen Konfiguration von /etc/login.conf, stehen mehrere Werkzeuge bereit, um die Login-Klasse für neue Benutzer einzustellen.
Wenn Sie neue Accounts mit vipw
anlegen, setzen Sie im Feld Sprache die gewünschte Sprache ein:
user:password:1111:11:Sprache:0:0:Benutzername:/home/user:/bin/sh
Wenn Sie mit adduser
neue Benutzer anlegen, können Sie die voreingestellte Sprache für alle Benutzer, oder für einen einzelnen Benutzer einstellen:
Falls alle Benutzer die gleiche Sprache benutzen, setzen Sie defaultclass=Sprache
in /etc/adduser.conf.
Wenn Sie diese Einstellung beim Anlegen des Benutzers überschreiben wollen, geben Sie entweder die gewünschte Login-Klasse am Prompt ein:
Enter login class: default []:
oder übergeben Sie die Login-Klasse beim Aufruf von adduser
:
# adduser -class Sprache
Wenn Sie neue Benutzer mit pw
anlegen, geben Sie die Login-Klasse wie folgt an:
# pw useradd Benutzername -L Sprache
Um die Login-Klasse eines bestehenden Benutzers zu ändern, kann chpass
verwendet werden. Rufen Sie das Kommando als Superuser auf und geben Sie als Argument den entsprechenden Benutzernamen mit:
# chpass Benutzername
22.2.1.2. Lokalisierung in den Startdateien der Shells
Diese zweite Methode wird nicht empfohlen, da jede Shell unterschiedlich eingerichtet wird, eine unterschiedliche Konfigurationsdatei und Syntax verwendet. Um beispielsweise die deutsche Sprache für die sh
zu setzen, fügen Sie für einen Benutzer die folgende Zeilen in ~/.profile ein. Sie können diese Zeilen auch für alle Benutzer der sh
Shell in /etc/profile oder /usr/shared/skel/dot.profile hinzufügen:
LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET
Die csh
Shell verwendet jedoch eine andere Konfigurationsdatei und eine andere Syntax. Dies sind die entsprechenden Einstellungen für ~/.csh.login, /etc/csh.login oder /usr/shared/skel/dot.login:
setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1
Die Syntax zur Konfiguration von Xorg in ~/.xinitrc hängt ebenfalls von der verwendeten Shell ab. Das erste Beispiel ist für die sh
Shell, das zweite für die csh
Shell:
LANG=de_DE.ISO8859-1; export LANG
setenv LANG de_DE.ISO8859-1
22.2.2. Einrichten der Konsole
Für die Konsole stehen mehrere lokalisierte Sprachen zur Verfügung. Eine Liste der verfügbaren Schriften erhalten Sie mit ls /usr/shared/syscons/fonts
. Um die Schriftart für die Konsole zu konfigurieren, setzen Sie den gewünschten Zeichensatz ohne die Endung .fnt in /etc/rc.conf:
font8x16=Zeichensatz font8x14=Zeichensatz font8x8=Zeichensatz
Die Tasten- und Bildschirmzuordnung (keymap und screenmap) kann in mit den folgenden Einträgen in /etc/rc.conf gesetzt werden:
scrnmap=screenmap_name keymap=keymap_name keychange="fkey_number sequence"
Eine Liste der verfügbaren Bildschirmzuordnungen erhalten Sie mit ls /usr/shared/syscons/scrnmaps
. Spezifizieren Sie screenmap_name ohne die Endung .scm. Eine Bildschirmzuordnung und der zugehörige Zeichensatz verbreitert die Zeichenmatrix von VGA Karten von 8 Bit auf 9 Bit. Sie wird benötigt, wenn der Zeichensatz des Bildschirms 8 Bit verwendet.
Eine Liste der verfügbaren Tastenzuordnungen erhalten Sie mit ls /usr/shared/syscons/keymaps
. Spezifizieren Sie keymap_name ohne die Endung .kbd. Eine Tastenzuordnung können Sie ohne einen Neustart mit kbdmap(1) ausprobieren.
Der Eintrag keychange
programmiert die Funktionstasten so, dass sie zu dem ausgesuchten Terminal passen. Die Sequenzen der Funktionstasten können nicht in Tastenzuordnungen definiert werden.
Setzen Sie als nächstes für alle Terminals den richtigen Terminaltyp in /etc/ttys. Terminaltypen für Zeichensätze enthält eine Zusammenfassung der verfügbaren Terminaltypen.
Zeichensatz | Terminaltyp |
---|---|
ISO8859-1 oder ISO8859-15 |
|
ISO8859-2 |
|
ISO8859-7 |
|
KOI8-R |
|
KOI8-U |
|
CP437 (VGA default) |
|
US-ASCII |
|
Mit Wide- oder Multibyte-Zeichensätzen müssen Sie die entsprechende Konsole aus der FreeBSD Ports-Sammlung installieren. Die verfügbaren Ports sind in Konsolen aus der Ports-Sammlung zusammengefasst. Nachdem Sie einen Port installiert haben, finden Sie in der Manualpage oder der pkg-message des Ports Anweisungen zur Konfiguration und Benutzung der Konsole.
Sprache | Port |
---|---|
traditionelles Chinesisch (BIG-5) | |
Chinesisch/Japanisch/Koreanisch | |
Chinesisch/Japanisch/Koreanisch | |
Japanisch | |
Japanisch | |
Japanisch |
Wenn Sie moused in /etc/rc.conf aktiviert haben, ist vielleicht noch weitere Konfiguration nötig. 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. Fügen Sie dazu die folgende Zeile in /etc/rc.conf ein:
mousechar_start=3
22.2.3. Einrichtung von Xorg
Das X-Window-System beschreibt die Installation und Konfiguration von Xorg. Wenn Xorg für die Lokalisierung eingerichtet wird, stehen zusätzliche Zeichensätze und Eingabemethoden in der FreeBSD Ports-Sammlung zur Verfügung. Anwendungsspezifische I18N-Einstellungen, wie etwa Zeichensätze und Menüs, können in ~/.Xresources angepasst werden, damit in den graphischen Anwendungen des Benutzers die gewählte Sprache angezeigt wird.
Das X Input Method (XIM) Protokoll ist ein Xorg-Standard für die Eingabe von nicht-englischen Zeichen. Verfügbare Eingabemethoden fasst die aus der FreeBSD Ports-Sammlung verfügbaren Anwendungen für die Eingabemethoden zusammen. Zusätzliche Fcitx- und Uim-Anwendungen sind ebenfalls verfügbar.
Sprache | Eingabemethode |
---|---|
Chinesisch | |
Chinesisch | |
Chinesisch | |
Chinesisch | |
Chinesisch | |
Chinesisch | |
Chinesisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Japanisch | |
Koreanisch | |
Koreanisch | |
Koreanisch | |
Koreanisch | |
Koreanisch | |
Vietnamesisch | |
Vietnamesisch |
22.3. I18N-Programme
I18N-Anwendungen werden mit Hilfe von I18N-Bibliotheken programmiert. Diese erlauben es Entwicklern, eine einfache Sprachdatei zu schreiben und Menüs und Texte an jede Sprache anzupassen.
Die FreeBSD Ports-Sammlung enthält Programme mit Unterstützung für Wide- und Mulitbyte-Zeichensätze für verschiedene Sprachen. Konsultieren Sie die I18N-Dokumentation des entsprechenden Ports für Informationen, wie das Programm zu konfigurieren ist und welche Optionen beim Übersetzen anzugeben sind.
Viele Anwendungen aus der FreeBSD Ports-Sammlung bieten I18N-Unterstützung. Diese enthalten, zur einfachen Identifikation, -i18n
im Namen. Es werden jedoch nicht alle Sprachen unterstützt.
Einige Anwendungen können mit einem bestimmten Zeichensatz konfiguriert werden. Dies erfolgt entweder im Makefile, oder über spezielle Parameter, die an configure übergeben werden. Lesen Sie die I18N-Dokumentation des entsprechenden Ports für Informationen, wie das Programm zu konfigurieren ist und welche Optionen beim Übersetzen anzugeben sind.
22.4. Lokalisierung für einzelne Sprachen
Dieser Abschnitt beschreibt die Lokalisierung eines FreeBSD-Systems für die russische Sprache. Außerdem werden einige zusätzliche Ressourcen für die Lokalisierung in anderen Sprachen zur Verfügung gestellt.
22.4.1. Russisch (KOI8-R Codierung)
Um diese Locale für die Login-Shell zu setzen, fügen Sie die folgenden Zeilen in die ~/.login_conf des Benutzers ein:
me:My Account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R:
Fügen Sie folgende Zeile für die Konsole in /etc/rc.conf ein:
keymap="ru.utf-8" scrnmap="utf-82cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" mousechar_start=3
Benutzen Sie cons25r
als Terminaltyp für jeden ttyv
Eintrag in /etc/ttys.
Damit der Druck funktioniert, wird ein spezieller Filter zur Übersetzung von KOI8-R nach CP866 benötigt, da die meisten Drucker mit russischen Zeichen die Codetabelle CP866 verwenden. FreeBSD enthält im Basissystem einen Filter zu diesem Zweck. Um diesen Filter zu benutzen, fügen Sie folgenden Eintrag in /etc/printcap ein:
lp|Russian local line printer:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
printcap(5) enthält eine ausführlichere Erklärung.
Russische Dateinamen auf MS-DOS® Dateisystemen werden durch -L
und dem Namen der Locale in /etc/fstab erkannt:
/dev/ad0s2 /dos/c msdos rw,-Lru_RU.KOI8-R 0 0
Weitere Informationen finden Sie in mount_msdosfs(8).
Wenn Sie Xorg verwenden, installieren Sie das Paket x11-fonts/xorg-fonts-cyrillic. Im Abschnitt "Files"
von /etc/X11/xorg.conf fügen Sie dann den folgenden Eintrag vor allen anderen FontPath
Einträgen ein:
FontPath "/usr/local/lib/X11/fonts/cyrillic"
Zusätzliche kyrillische Schriftarten finden Sie in der Ports-Sammlung.
Die Unterstützung für eine russische Tastatur aktivieren Sie im Abschnitt "Keyboard"
von xorg.conf:
Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:toggle"
Stellen Sie zudem sicher, dass XkbDisable
auskommentiert ist.
Beim Einsatz von grp:toggle
können Sie mit Right Alt (Alt Gr) zwischen dem RUS- und LAT-Modus wechseln, verwenden Sie hingegen grp:ctrl_shift_toggle
, so erfolgt der Wechsel mit Ctrl+Shift. Für grp:caps_toggle
ist zum Wechseln des RUS/LAT-Modus CapsLock zuständig. Die alte Funktion von CapsLock steht nur im LAT-Modus mit der Tastenkombination Shift+CapsLock zur Verfügung. grp:caps_toggle
funktioniert aus unbekannten Gründen unter Xorg nicht.
Wenn die Tastatur Windows®-Tasten besitzt und nicht-alphanumerische Tasten nicht funktionieren, fügen Sie die folgende Zeile in xorg.conf ein:
Option "XkbVariant" ",winkeys"
Die russische XKB-Tastatur funktioniert vielleicht nicht mit nicht-lokalisierten Anwendungen. Lokalisierte Anwendungen sollten mindestens die Funktion |
Weitere Informationen über die Lokalisierung von Xorg-Anwendungen erhalten Sie auf der Webseite http://koi8.pp.ru/xwin.html. Allgemeine Informatinen über die KOI8-R Codierung finden Sie auf http://koi8.pp.ru.
22.4.2. Weitere sprachspezifische Ressourcen
Dieser Abschnitt enthält einige zusätzliche Ressourcen für die Konfiguration anderer Lokalisierungen.
- Traditionelles Chinesisch für Taiwan
Das taiwanesische FreeBSD Projekt stellt ein Tutorium unter http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/ zur Verfügung.
- Griechische Lokalisierung
Ein Artikel über die Unterstützung für Griechisch steht unter http://www.freebsd.org/doc/el/articles/greek-language-support/. Bitte beachten Sie, dass dies nur für Griechisch gilt.
- Japanische und koreanische Lokalisierung
Informationen über die japanische Lokalisierung entnehmen Sie bitte http://www.jp.FreeBSD.org/, Informationen über die koreanische Lokalisierung erhalten Sie unter http://www.kr.FreeBSD.org/.
- Nicht-englische FreeBSD-Dokumentation
Teile der FreeBSD Dokumentation wurden von Beitragenden in andere Sprachen übersetzt. Folgen Sie den Links auf der FreeBSD-Webseite oder schauen Sie in /usr/shared/doc nach.
Last modified on: 9. März 2024 by Danilo G. Baio