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
enfür Englisch, defür Deutsch, jafür Japanisch, ukfür Ukrainisch, berfür Berber,…
- Für viele, aber nicht alle Sprachen ein Unterstrich
_gefolgt von einem zweibuchstabigen ISO 3166 -Ländercode in Großbuchstaben. Also: en_USfür US-Englisch, en_UKfür britisches Englisch, fr_CAkanadisches (Québec) Französisch, de_DEfür Deutsch von Deutschland, de_ATfür Deutsch von Österreich, ja_JPfü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-8Ist in UTF-8 Mandarin (vereinfachtes) Chinesisch, in zh_CNGB2312 Mandarin-Chinesisch und zh_TWin 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 @euroGebietsschemavariante, 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@eurodie Kodierung latin9 (ISO 8859-15) und € als Währungssymbol verwendet werden.
Außerdem gibt es auf allen Unix-ähnlichen Systemen zwei Gebietsschemanamen: Cund 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_COLLATEkann 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_NUMERICnicht 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
LANGUmgebungsvariablen verwendet, sofern er nicht von einer anderen Einstellung überschrieben wird. Ist dies LANGnicht der Fall, lautet das Standardgebietsschema C.
- Die
LC_xxxNamen können als Umgebungsvariablen verwendet werden.
- Wenn
LC_ALLgesetzt, werden alle anderen Werte ignoriert. Dies ist in erster Linie nützlich, um LC_ALL=CAusfü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:enBelgisches 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 localesaus der Liste im Dialogfeld aus, oder bearbeiten Sie sie /etc/locale.genund führen Sie sie aus locale-gen.
- Führen Sie unter Ubuntu zum Installieren von Gebietsschemas
locale-gendie Namen der Gebietsschemas als Argumente aus.
Sie können Ihr eigenes Gebietsschema definieren .
Empfehlung
Die nützlichen Einstellungen sind:
- Stellen Sie
LC_CTYPEauf 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ß iist Iin den meisten Sprachen , aber İin Türkisch ( tr_TR).
- Stellen Sie
LC_MESSAGESdie Sprache ein, in der Sie Nachrichten sehen möchten.
- Stellen Sie diese Option ein
LC_PAPER, en_USwenn 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_TIMEIhr bevorzugtes Zeitformat einstellen .
Vermeiden Sie, wie oben erläutert, die Einstellung LC_COLLATEund 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?