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⟩.