Ländereinstellungen sind Benutzereinstellungen, die sich auf Ihre Kultur beziehen.
Gebietsschemanamen
Bei allen aktuellen Unix-Varianten, die ich kenne (aber nicht bei einigen Antiquitäten), folgen die Gebietsschemennamen demselben Muster:
- Ein Sprachcode mit zwei Kleinbuchstaben nach ISO 639-1 oder ein Sprachcode mit drei Buchstaben nach ISO 639-2, wenn die Sprache keinen Code mit zwei Buchstaben enthält. Zum Beispiel
en
für Englisch, de
für Deutsch, ja
für Japanisch, uk
für Ukrainisch, ber
für Berber,…
- Für viele, aber nicht alle Sprachen ein Unterstrich
_
gefolgt von einem zweibuchstabigen ISO 3166 -Ländercode in Großbuchstaben. Also: en_US
für US-Englisch, en_UK
für britisches Englisch, fr_CA
kanadisches (Québec) Französisch, de_DE
für Deutsch von Deutschland, de_AT
für Deutsch von Österreich, ja_JP
für Japanisch (von Japan) usw.
- Optional kann ein Punkt ,
.
gefolgt von dem Namen eines Zeichencodierung wie UTF-8
, ISO-8859-1
, KOI8-U
, GB2312
, Big5
, etc. Mit GNU libc zumindest (ich weiß nicht , wie weit verbreitet das ist), Fall und Zeichensetzung bei der Codierung Namen ignoriert. Beispiel: zh_CN.UTF-8
Ist in UTF-8 Mandarin (vereinfachtes) Chinesisch, in zh_CN
GB2312 Mandarin-Chinesisch und zh_TW
in Big5 taiwanesisches (traditionelles) Chinesisch.
- Optional ein at-Zeichen
@
gefolgt vom Namen einer Variante. Die Bedeutung von Varianten ist vom Gebietsschema abhängig. In vielen europäischen Ländern gibt es beispielsweise eine @euro
Gebietsschemavariante, in der das Währungszeichen "€" lautet und die dieses Zeichen enthält (ISO 8859-15 oder ISO 8859-16), im Gegensatz zur schmucklosen Variante mit dem älteren Währungszeichen. Beispielsweise verwendet en_IE
(Englisch, Irland) die Kodierung latin1 (ISO 8859-1) und £ als Währungssymbol, während en_IE@euro
die Kodierung latin9 (ISO 8859-15) und € als Währungssymbol verwendet werden.
Außerdem gibt es auf allen Unix-ähnlichen Systemen zwei Gebietsschemanamen: C
und POSIX
. Diese Namen sind synonym und bedeuten Computerese, dh Standardeinstellungen, die für Daten geeignet sind, die von einem Computerprogramm analysiert werden.
Gebietsschemaeinstellungen
Die folgenden Gebietsschemakategorien werden von POSIX definiert :
LC_CTYPE
: Der von Terminalanwendungen verwendete Zeichensatz: Klassifizierungsdaten (welche Zeichen sind Buchstaben, Interpunktion, Leerzeichen, ungültig usw.) und Groß- / Kleinschreibung. Textdienstprogramme beachten normalerweise LC_CTYPE
, um Zeichengrenzen zu bestimmen.
LC_COLLATE
: Sortierreihenfolge. Diese Einstellung ist aus mehreren Gründen nur sehr eingeschränkt verwendbar:
- Die meisten Sprachen haben komplizierte Regeln, die davon abhängen, was sortiert wird (z. B. verwenden Wörterbuchwörter und Eigennamen möglicherweise nicht dieselbe Reihenfolge) und können nicht durch ausgedrückt werden
LC_COLLATE
.
- Es gibt nur wenige Anwendungen, bei denen die richtige Sortierreihenfolge von Software ausgeführt wird, die Gebietsschemaeinstellungen verwendet. Beispielsweise speichern Textverarbeitungsprogramme die Sprache und Codierung einer Datei in der Datei selbst (andernfalls würde die Datei auf einem System mit unterschiedlichen Gebietsschemaeinstellungen nicht korrekt verarbeitet) und kümmern sich nicht um die von der Umgebung angegebenen Gebietsschemaeinstellungen.
LC_COLLATE
kann böse Nebenwirkungen haben, insbesondere, weil dadurch die Sortierreihenfolge A <a <B <... verursacht wird, bei der "zwischen A und Z" die Kleinbuchstaben a bis y enthält. Insbesondere sehr häufig verwendete reguläre Ausdrücke wie [A-Z]
break setzen einige Anwendungen außer Kraft .
LC_MESSAGES
: die Sprache der Informations- und Fehlermeldungen.
LC_NUMERIC
: Zahlenformatierung: Dezimal- und Tausendertrennzeichen.
Viele Anwendungen codieren hart .
als Dezimaltrennzeichen. Dies macht LC_NUMERIC
nicht sehr nützlich und potenziell gefährlich:
- Auch wenn Sie es einstellen, wird das Standardformat häufig angezeigt.
- Es ist wahrscheinlich, dass eine Anwendung eine vom Gebietsschema abhängige Ausgabe erzeugt und eine andere Anwendung
.
den Dezimalpunkt oder ,
ein Feldtrennzeichen erwartet .
LC_MONETARY
: wie LC_NUMERIC
, aber für Beträge in lokaler Währung.
Sehr wenige Anwendungen verwenden dies.
LC_TIME
: Datums- und Uhrzeitformatierung: Wochentags- und Monatsnamen, 12- oder 24-Stunden-Uhr, Reihenfolge der Datumsteile, Zeichensetzung usw.
GNU libc, das Sie unter nicht eingebettetem Linux finden, definiert zusätzliche Gebietsschemakategorien:
LC_PAPER
: Das Standardpapierformat (definiert durch Höhe und Breite).
LC_NAME
, LC_ADDRESS
, LC_TELEPHONE
, LC_MEASUREMENT
, LC_IDENTIFICATION
: Ich weiß nicht , von jeder Anwendung , die diese verwendet.
Umgebungsvariablen
Anwendungen, die Gebietsschemaeinstellungen verwenden, ermitteln diese anhand von Umgebungsvariablen.
- Dann wird der Wert der
LANG
Umgebungsvariablen verwendet, sofern er nicht von einer anderen Einstellung überschrieben wird. Ist dies LANG
nicht der Fall, lautet das Standardgebietsschema C
.
- Die
LC_xxx
Namen können als Umgebungsvariablen verwendet werden.
- Wenn
LC_ALL
gesetzt, werden alle anderen Werte ignoriert. Dies ist in erster Linie nützlich, um LC_ALL=C
Ausführungsanwendungen festzulegen, die unabhängig von ihrem Ausführungsort die gleiche Ausgabe erzeugen müssen.
- Darüber hinaus libc GNU Anwendungen
LANGUAGE
definieren Fallbacks für LC_MESSAGES
(zB LANGUAGE=fr_BE:fr_FR:en
Belgisches Französisch zu bevorzugen, oder wenn nicht verfügbar Frankreich Französisch, oder wenn nicht verfügbar Englisch).
Sprachumgebungen installieren
Da die Gebietsschemadaten sehr umfangreich sein können, werden sie bei einigen Distributionen nicht in einer verwendbaren Form ausgeliefert, sondern erfordern einen zusätzlichen Installationsschritt.
- Führen Sie unter Debian zum Installieren von Gebietsschemas
dpkg-reconfigure locales
aus der Liste im Dialogfeld aus, oder bearbeiten Sie sie /etc/locale.gen
und führen Sie sie aus locale-gen
.
- Führen Sie unter Ubuntu zum Installieren von Gebietsschemas
locale-gen
die Namen der Gebietsschemas als Argumente aus.
Sie können Ihr eigenes Gebietsschema definieren .
Empfehlung
Die nützlichen Einstellungen sind:
- Stellen Sie
LC_CTYPE
auf die Sprache und Codierung , die Sie in Ihren Text - Dateien zu kodieren. Stellen Sie sicher , dass Ihre Endgeräte , die Codierung verwenden.
Für die meisten Sprachen ist nur die Kodierung von Bedeutung. Es gibt einige Ausnahmen; beispielsweise ein Groß i
ist I
in den meisten Sprachen , aber İ
in Türkisch ( tr_TR
).
- Stellen Sie
LC_MESSAGES
die Sprache ein, in der Sie Nachrichten sehen möchten.
- Stellen Sie diese Option ein
LC_PAPER
, en_US
wenn Sie möchten, dass US Letter das Standardpapierformat ist, und fast alles andere (z. B. en_GB
), wenn Sie A4 möchten.
- Optional können Sie
LC_TIME
Ihr bevorzugtes Zeitformat einstellen .
Vermeiden Sie, wie oben erläutert, die Einstellung LC_COLLATE
und LC_NUMERIC
. Wenn Sie verwenden LANG
, überschreiben Sie diese beiden Kategorien explizit, indem Sie sie auf festlegen C
.
LC_PAPER
. Und kann ich dies systemweit aktualisieren, ohne neu zu starten?/etc/default/locale
. Diese Dateien werden beim Anmelden wirksam. Sie könnenexport LC_PAPER=…
in einer Shell Befehle beeinflussen, die von dieser Shell aus gestartet werden.