Provided by: manpages-de_4.21.0-2_all bug

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 Glibc 2.3 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 Standardort des Locale-Archivs.

       /usr/lib/locale
              Gewöhnlicher Standard-Vorgabeort für kompilierte individuelle Locale-Dateien.

STANDARDS

       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)

Ü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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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  die
       Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.