Locale: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
*>Harlekin
*>Harlekin
Zeile 42: Zeile 42:
Wie schon bemerkt, kann es sein, dass einige Benutzer locales definieren wollen, die nicht mit der system-weiten locale übereinstimmen.
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.
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 bringt, sondern sogar eher nachteilig ist.
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
  export LC_ALL=de_DE.iso88591


Diese Änderung der locales werden aktiv, sobald der Benutzer neu eingeloggt wird. Allerdings kann man die Änderung auch manuell aktivieren:
Diese Änderung der locales werden aktiv, sobald sich der Benutzer neu anmeldet. Allerdings kann man die Änderung auch manuell aktivieren:
  source ~/.bashrc
  source ~/.bashrc



Version vom 21. August 2007, 14:43 Uhr

Vorlage:I18n links start Vorlage:I18n entry Vorlage:I18n entry Vorlage:I18n entry Vorlage:I18n entry Vorlage:I18n links end

Einleitung

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

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.