Provided by: manpages-de_2.5-1_all 

BEZEICHNUNG
locale - Beschreibung der Unterstützung für mehrere Sprachen
ÜBERSICHT
#include <locale.h>
BESCHREIBUNG
Eine Locale ist ein Satz von kulturellen und sprachlichen Regeln. Die Regeln behandeln Aspekte wie die
Sprache für Meldungen, unterschiedliche Zeichensätze, lexikografische Konventionen usw. Um in
unterschiedlichen Kulturen eingesetzt werden zu können, muss ein Programm in der Lage sein, die Locale zu
ermitteln und deren Regeln anzuwenden.
Die Header-Datei <locale.h> deklariert für diese Aufgabe hilfreiche Datentypen, Funktionen und Makros.
Sie deklariert die Funktionen setlocale(3) für das Setzen der aktuellen Locale und localeconv(3), welche
Informationen über Zahlenformate beschafft.
Es gibt unterschiedliche Kategorien für sprachspezifische Informationen, die ein Programm benötigt. Sie
sind als Makros deklariert. Wenn sie als erstes Argument für setlocale(3) benutzt werden, ist es möglich,
eine dieser Kategorien auf die gewünschte Locale zu setzen:
LC_ADDRESS (GNU-Erweiterung, seit Glibc 2.2)
Mit diesem Makro können Sie die Einstellungen ändern, welche die Formate beschreiben (zum Beispiel
Postanschriften), die Orte und sonstige Objekte mit geografischem Bezug ändern. Anwendungen,
welche diese Informationen benötigen, können nl_langinfo(3) verwenden, um den Inhalt von
Nicht-Standardelementen, wie _NL_ADDRESS_COUNTRY_NAME (Landesbezeichnung in der Sprache der
jeweiligen Locale) und _NL_ADDRESS_LANG_NAME (Sprachbezeichnung in der Sprache der jeweiligen
Locale), welche Zeichenketten wie »Deutschland« und »Deutsch« (für deutsche Spracheinstellungen)
zurückliefern, zu ermitteln. Weitere Elementnamen werden in <langinfo.h> aufgelistet.
LC_COLLATE
Diese Kategorie legt die Vergleichsregeln für das Sortieren sowie reguläre Ausdrücke fest,
einschließlich Äquivalenzklassen für Zeichen und die Sortierreihenfolge für Elemente, die aus
mehreren Zeichen bestehen. Diese Kategorie ändert das Verhalten der Funktionen strcoll(3) und
strxfrm(3), mit denen Zeichenketten gemäß des lokalen Alphabets verglichen werden. Zum Beispiel
wird das deutsche scharfe s (ß) wie »ss« sortiert.
LC_CTYPE
Diese Kategorie legt die Interpretation von Bytesequenzen als Zeichen fest (beispielsweise
Einzelbyte- oder Multibyte-Zeichen), die Einteilung von Zeichen (beispielsweise Buchstabe oder
Ziffer) sowie das Verhalten von Zeichenklassen. Auf Glibc-Systemen legt diese Kategorie außerdem
die Transliterationsregeln für iconv(1) und iconv(3) fest. Sie ändert das Verhalten von
zeichenorientierten und Klassifizierungs-Funktionen wie isupper(3) und toupper(3) sowie Funktionen
für die Bearbeitung von Multibyte-Zeichen wie mblen(3) oder wctomb(3).
LC_IDENTIFICATION (GNU-Erweiterung, seit Glibc 2.2)
Mit diesem Makro ändern Sie Einstellungen der Metadaten für die Locale. Anwendungen, welche diese
Informationen benötigen, können nl_langinfo(3) verwenden, um den Inhalt von
Nicht-Standardelementen, wie _NL_IDENTIFICATION_TITLE (Titel dieses Locale-Dokuments) und
_NL_IDENTIFICATION_TERRITORY (geografisches Territorium, für das dieses Locale-Dokument anwendbar
ist), welche Zeichenketten wie »English Locale for the USA« und »USA« zurückliefern, zu ermitteln.
Weitere Elementnamen werden in <langinfo.h> aufgelistet.
LC_MONETARY
Diese Kategorie bestimmt die für monitäre numerische Werte verwandte Formatierung. Dies ändert die
Informationen, die von localeconv(3) zurückgegeben werden. Sie beschreiben das Format, in dem
Zahlen normalerweise ausgegeben werden, inklusive Details wie Dezimalpunkt bzw. Dezimalkomma.
Diese Informationen werden intern von der Funktion strfmon(3) benutzt.
LC_MESSAGES
Diese Kategorie beeinflusst die Sprache, in der Meldungen angezeigt werden und das Aussehen
positiver oder negativer Antworten. Um die Anwendung dieser Informationen zu vereinfachen, stellt
die GNU-C-Bibliothek die Funktionen gettext(3), ngettext(3) und rpmatch(3) bereit. Die
Funktionenfamilie GNU gettext richtet sich nach der Umgebungsvariable LANGUAGE (enthält eine durch
Doppelpunkte getrennte Liste von Locales), wenn die Kategorie auf eine gültige, von »C«
verschiedene Locale gesetzt ist. Diese Kategorie beeinflusst auch das Verhalten von catopen(3).
LC_MEASUREMENT (GNU-Erweiterung, seit Glibc 2.2)
Dies ändert die Einstellungen des Einheitensystems in der Locale (zum Beispiel metrisches oder
angloamerikanisches Maßsystem). Anwendungen können nl_langinfo(3) verwenden, um den Inhalt des
Nicht-Standard-Elements _NL_MEASUREMENT_MEASUREMENT zu ermitteln, welches einen Zeiger auf ein
Zeichen zurückgibt, das entweder den Wert 1 (metrisches Maßsystem) oder 2 (angloamerikanisches
Maßsystem) hat.
LC_NAME (GNU-Erweiterung, seit Glibc 2.2)
Dies ändert die Einstellungen, welche die für Personenadressen verwendeten Formate beschreiben.
Anwendungen, welche diese Information benötigen, können nl_langinfo(3) verwenden, um den Inhalt
von Nicht-Standard-Elementen, wie _NL_NAME_NAME_MR (allgemeine Anrede für männliche Personen) und
_NL_NAME_NAME_MS (allgemeine Anrede für weibliche Personen), zu ermitteln. Diese geben
beispielsweise im in der deutschen Locale-Einstellung »Herr« und »Frau« zurück. Weitere
Elementnamen sind in <langinfo.h> aufgelistet.
LC_NUMERIC
Diese Kategorie bestimmt die für nichtmonitäre numerische Werte verwandte Formatierung –
beispielsweise das Tausender-Trennzeichen und den Dezimaltrenner (ein Punkt in den meisten
englischsprachigen Ländern, in vielen anderen Regionen aber ein Komma). Sie beeinflusst Funktionen
wie printf(3), scanf(3) und strtod(3). Diese Informationen können auch mit der Funktion
localeconv(3) ausgelesen werden.
LC_PAPER (GNU-Erweiterung, seit Glibc 2.2)
Dies ändert die Einstellungen der Abmessungen des Standardpapiers (zum Beispiel US-Letter oder
A4). Anwendungen, welche diese Abmessungen benötigen, können nl_langinfo(3) verwenden, um den
Inhalt der Nicht-Standard-Elemente _NL_PAPER_WIDTH und _NL_PAPER_HEIGHT zu ermitteln, wobei
int-Werte zurückgegeben werden, die die Abmessungen in Millimetern angeben.
LC_TELEPHONE (GNU-Erweiterung, seit Glibc 2.2)
Dies ändert Einstellungen bezüglich der für Telefoniedienste verwendeten Formate. Anwendungen,
welche diese Informationen benötigen, können nl_langinfo(3) zum Ermitteln der Inhalte von
Nicht-Standard-Elementen verwenden, wie _NL_TELEPHONE_INT_PREFIX (internationales Präfix, das zum
Anrufen von Nummern in diese Locale verwendet wird, was für Deutschland »49« zurückliefert).
Weitere Elementnamen sind in <langinfo.h> aufgelistet.
LC_TIME
Diese Kategorie regelt die für Datums- und Uhrzeitwerte verwandte Formatierung. Beispielsweise
verwendet der Großteil von Europa eine 24-Stunden-Uhr während eine 12-Stunden-Uhr in den
Vereinigten Staaten verwandt wird. Die Einstellung dieser Kategorie betrifft das Verhalten von
Funktionen wie strftime(3) and strptime(3).
LC_ALL alles bisherige
Wenn das zweite Argument von setlocale(3) für die vorgegebene Locale eine leere Zeichenkette (empty
string) »« ist, wird sie mit den folgenden Schritten ermittelt:
1. Wenn eine nicht leere Umgebungsvariable LC_ALL existiert, wird der Wert von LC_ALL benutzt.
2. Wenn eine nicht leere Umgebungsvariable mit dem gleichen Namen wie eine der oben genannten Kategorien
existiert, wird ihr Wert für die gleichnamige Kategorie verwendet.
3. Wenn eine nicht leere Umgebungsvariable LANG existiert, wird ihr Wert benutzt.
Informationen über die lokale Formatierung von Zahlen liefert die Funktion localeconv(3) in der
Datenstruktur struct lconv. Sie ist wie folgt deklariert:
struct lconv {
/* Numerische (nicht währungsbezogene) Informationen */
char *decimal_point; /* Dezimal-Trennzeichen */
char *thousands_sep; /* Tausender-Trennzeichen */
char *grouping;
/* Jedes Element entspricht der Anzahl von Ziffern in jeder
Gruppe. Elemente mit einem höheren Index stehen weiter.
links. Ein Element mit dem Wert CHAR_MAX bedeutet, dass
keine weitere Gruppierung mehr stattfindet. Ein Element
mit einem Wert von 0 bedeutet, dass das vorherige Element
für alle Gruppen weiter links benutzt wird. */
/* Die restlichen Felder enthalten Währungsinformationen. */
/* Die ersten drei Zeichen stellen das Währungszeichen gemäß ISO
4217 dar. Das vierte Zeichen ist das Trennzeichen, das fünfte
Zeichen ist '\0'. */
char *int_curr_symbol;
char *currency_symbol; /* lokales Währungssymbol */
char *mon_decimal_point; /* Dezimal-Trennzeichen */
char *mon_thousands_sep; /* Tausender-Trennzeichen */
char *mon_grouping; /* Wie das »Grouping«-Element (oben) */
char *positive_sign; /* Vorzeichen für positive Werte */
char *negative_sign; /* Vorzeichen für negative Werte */
char int_frac_digits; /* internationale Zeichen für Brüche */
char frac_digits; /* lokale Zeichen für Brüche */
/* 1 wenn currency_symbol einem positiven Wert vorangestellt wird,
0 wenn es nachgestellt wird */
char p_cs_precedes;
/* 1 wenn ein Leerzeichen currency_symbol von einem positiven
Wert trennt */
char p_sep_by_space;
/* 1 wenn currency_symbol einem negativen Wert vorangestellt wird,
0 wenn es nachgestellt wird */
char n_cs_precedes;
/* 1 wenn ein Leerzeichen currency_symbol von einem negativen
Wert trennt. */
char n_sep_by_space;
/* Positionen positiver und negativer Vorzeichen:
0 Klammern umgeben die Menge und currency_symbol.
1 Das Vorzeichen wird der Menge und currency_symbol vorangestellt.
2 Das Vorzeichen wird der Menge und currency_symbol nachgestellt.
3 Das Vorzeichen wird currency_symbol unmittelbar vorangestellt.
4 Das Vorzeichen wird currency_symbol unmittelbar nachgestellt. */
char p_sign_posn;
char n_sign_posn;
};
POSIX.1-2008-Erweiterungen zum lokalen API
In POSIX.1-2008 ist eine Reihe von Erweiterungen der Locale-API standardisiert, basierend auf
Implementationen, die erstmals in der Version 2.3 der GNU C-Bibliothek erschienen sind. Diese
Erweiterungen sollen das Problem beheben, dass traditionelle Locale-APIs nur eingeschränkt mit
Multithread-Anwendungen und mit Anwendungen, die mehrere Locales verwenden, zusammenarbeiten.
Die Erweiterungen haben die Form neuer Funktionen zum Erstellen und Manipulieren von Locale-Objekten
(newlocale(3), freelocale(3), duplocale(3) und uselocale(3)) und diverser neuer Bibliotheksfunktionen mit
dem Suffix »_l« (zum Beispiel toupper_l(3)), welche die traditionellen Locale-abhängigen APIS erweitern
(zum Beispiel toupper(3)), um die Spezifizierung eines Locale-Objekts zu ermöglichen, das beim Ausführen
der Funktion angewendet werden soll.
UMGEBUNGSVARIABLEN
Die folgende Umgebungsvariable wird von newlocale(3) und setlocale(3) verwandt und betrifft daher alle
unprivilegierten lokalisierten Programme:
LOCPATH
Eine Liste von durch Doppelpunkt (':') getrennten Pfadnamen, die zum Auffinden von Locale-Daten
benutzt werden sollen. Falls diese Variable gesetzt ist, werden nur die individuell kompilierten
Locale-Datendateien aus LOCPATH und die Systemvorgabepfade for Locale-Data verwandt; andere
verfügbare locale Archive werden nicht verwandt (siehe localedef(1)). Die individuell kompilierten
Locale-Datendateien werden unter Unterverzeichnissen gesucht, die von der aktuell verwandten
Locale abhängen. Wird beispielsweise en_GB.UTF-8 als eine Kategorie verwandt, dann werden die
folgenden Unterverzeichnisse in dieser Reihenfolge durchsucht: en_GB.UTF-8, en_GB.utf8, en_GB,
en.UTF-8, en.utf8 und en.
DATEIEN
/usr/lib/locale/locale-archive
Gewöhnlicher Standard-Vorgabeort für Lokale-Archive.
/usr/lib/locale
Gewöhnlicher Standard-Vorgabeort für kompilierte individuelle Locale-Dateien.
KONFORM ZU
POSIX.1-2001.
SIEHE AUCH
iconv(1), locale(1), localedef(1), catopen(3), gettext(3), iconv(3), localeconv(3), mbstowcs(3),
newlocale(3), ngettext(3), nl_langinfo(3), rpmatch(3), setlocale(3), strcoll(3), strfmon(3), strftime(3),
strxfrm(3), uselocale(3), wcstombs(3), locale(5), charsets(7), unicode(7), utf-8(7)
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.15 des Projekts Linux-man-pages. Eine Beschreibung des
Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Martin
Eberhard Schauer <Martin.E.Schauer@gmx.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Dr.
Tobias Quathamer <toddy@debian.org> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an
<debian-l10n-german@lists.debian.org>.
Linux 15. September 2017 LOCALE(7)