Provided by: manpages-de_2.16-1_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  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 Standardort des Locale-Archivs.

       /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  5.03  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>.