Locale: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) K kategorisiert |
Dirk (Diskussion | Beiträge) K →xterm unterstützt keine UTF-8 Zeichen: katfix |
||
Zeile 68: | Zeile 68: | ||
[[en:Locale]] | [[en:Locale]] | ||
[[Kategorie:Grundlagen]] | [[Kategorie:Grundlagen]] |
Version vom 27. Januar 2013, 10:44 Uhr
Locales werden in Linux benutzt, um die Sprache des Benutzers festzulegen. Da die locales auch den Zeichensatz der Sprache bestimmen, ist eine korrekte Einstellung dieser, besonders bei Sprachen, die nicht-ASCII Zeichen benutzen, besonders wichtig.
Locales werden nach folgender Syntax benannt:
[language[_territory][.codeset][@modifier]]
In diesem HowTo werden wir ein System so konfigurieren, dass es die de_DE.UTF-8 locale benutzt. Dieses HowTo sowie mit anderen locales zu benutzen, ist allerdings auch ohne Aufwand möglich.
Aktivieren der notwendigen locales
Als erstes müssen die locales, die von dem System unterstützt werden sollen, aktiviert werden. Dazu wird die Datei /etc/locale.gen verwendet; sie beinhaltet eine Liste aller möglichen locales. Durch auskommentieren einzelner Einträge wird diese locale aktiviert.
Da wir ein deutsches, UTF-8 konformes System haben wollen, aktivieren wir zunächst de_DE.UTF-8. Aus Kompatiblitätsgründen sollten allerdings auch alle anderen locales, die mit de_DE beginnen, aktiviert werden, da Programme, die kein Unicode unterstützen, diese locales benötigen. Damit müssen wir mindestens die folgenden locales aktivieren:
de_DE.UTF-8 UTF-8 de_DE ISO-8859-1 de_DE@euro ISO-8859-15
Um die Änderungen in der Datei wirksam zu machen, muss als root folgender Befehl ausgeführt werden:
# locale-gen Generating locales... de_DE.UTF-8... done de_DE.ISO-8859-1... done de_DE.ISO-8859-15@euro... done Generation complete.
Hinweis: Obwohl es in der Regel nur eine Sprache ist, die du benutzt, ist es in manchen Situationen hilfreich bis notwendig, weitere locales zu aktivieren. Beispielsweise werden Benutzer eines multi-user Systems, die kein Deutsch sprechen, erst zufrieden sein, wenn ihre eigene Sprache vollständig unterstützt wird.
Setzen der system-weiten locale
Welche locale vom System und als Standard-locale verwendet wird, wird in der Datei /etc/rc.conf definiert. Da wir die ISO-8859-1 und die ISO-8859-15 locales lediglich aus (Abwärts-)Kompatiblitätsgründen aktiviert haben, tragen wir hier de_DE.utf-8 ein.
LOCALE="de_DE.utf8"
Die Änderung der system-weite locale wird nach einem Neustart des Computers aktiv.
Setzen der benutzerbasierten locale
Wie schon bemerkt, kann es sein, dass einige Benutzer locales definieren wollen, die nicht mit der system-weiten locale übereinstimmen. Um diesen Fall zu realisieren, muss die Variable LC_ALL in der ~/.bashrc exportiert werden. Zum Beispiel kann ein Benutzer die de_DE.iso88591 locale verwenden, wobei das keinen Vorteil gegenüber der UTF-8 locale bringen würde, sondern sogar eher nachteilig ist.
export LC_ALL=de_DE.iso88591
Diese Änderung der locales werden aktiv, sobald sich der Benutzer neu anmeldet. Allerdings kann man die Änderung auch manuell aktivieren:
$ source ~/.bashrc
Spracheinstellung
Die Sprache, in der die Kommunikation zwischen Computer und Benutzer erfolgt, wird ebenfalls über die locales definiert; namentlich über die Variable LC_LANG. Diese Variable wird ebenfalls benutzerbasiert in der ~/.bashrc gesetzt:
export LC_LANG=en_EN.utf8
Nach dem erneuten Laden der ~/.bashrc sollten alle Programme die gewählte Sprache verwenden, gesetzt den Fall, dass sie diese unterstützen und korrekte Internationalisierungsmethoden verwenden.
Fehlerbehandlung
Woher bekomme ich die Namen der verfügbaren locales?
Die korrekten Namen aller verfügbaren locales können mittels folgenden Befehls abgerufen werden:
$ locale -a
Wie kann ich prüfen, welche locales ich benutze?
Welche locales zur Zeit benutzt werden, kann eingesehen werden, indem man einfach folgenden Befehl eingibt:
$ locale
Mein Terminal unterstützt keine UTF-8 Zeichen
Leider unterstützen einige Terminale noch kein UTF-8. In diesen Fällen solltest du dich für ein anderes Terminal entscheiden.
Liste der Terminals, die UTF-8 unterstützen:
- gnome-terminal
- gnustep-terminal
- mlterm
- urxvt (rxvt-unicode)
- xfce-terminal
- xterm
Hinweis: Diese Liste kann unvollständig sein.
xterm unterstützt keine UTF-8 Zeichen
xterm unterstützt UTF-8 lediglich, wenn es als uxterm oder als xterm -u8 gestartet wird.