Provided by: manpages-pl_0.7-2_all bug

NAZWA

       locale - opis obsługi wielu języków

SKŁADNIA

       #include <locale.h>

OPIS

       Locale  to  zestaw  reguł językowych i kulturalnych. Obejmują one aspekty takie, jak język
       komunikatów, różne zestawy znaków, konwencje  leksykograficzne  itd.  Program  musi  umieć
       określić  swoje locale i zachowywać się odpowiednio, aby można go było przenieść do innych
       kultur.

       Nagłówek  <locale.h>  deklaruje  typy  danych,   funkcje   i   makra   przydatne   w   tym
       przedsięwzięciu.

       Funkcje   deklarowane  to  setlocale(3),  ustawiająca  bieżące  locale,  i  localeconv(3),
       pobierająca informacje o formatowaniu liczb.

       Istnieją różne  kategorie  informacji  regionalnych,  których  potrzebować  może  program;
       zadeklarowane   są  one  jako  makra.  Używając  ich  jako  pierwszego  argumentu  funkcji
       setlocale(3), możliwe jest ustawienie poniższych informacji regionalnych:

       LC_ADDRESS (rozszerzenie GNU, od glibc 2.2)
              Zmienia ustawienia opisujące formaty (np. adresy pocztowe)  służące  do  opisywania
              położenia  i  rzeczy  okołogeograficznych. Aplikacje wymagające tej informacji mogą
              korzystać z nl_langinfo(3) do pozyskania  niestandardowych  elementów,  takich  jak
              _NL_ADDRESS_COUNTRY_NAME  (nazwa  kraju  w  danym  języku)  i _NL_ADDRESS_LANG_NAME
              (nazwa języka w danym języku), które zwracają przykładowo łańcuchy "Deutschland"  i
              "Deutsch"   (dla   niemieckich   locale).   Inne  nazwy  elementów  są  wypisane  w
              <langinfo.h>.)

       LC_COLLATE
              Kategoria obejmuje zasady zestawiania używane do sortowania i wyrażeń  regularnych,
              w  tym  klasy  ekwiwalentów  znaków  i  zestawiania  elementów  wieloznakowych.  Ta
              kategoria locale zmienia zachowanie funkcji strcoll(3) i strxfrm(3),  porównujących
              łańcuchy  znaków  w alfabecie lokalnym. Na przykład niemieckie scharfes S sortowane
              jest jako "ss".

       LC_CTYPE
              Kategoria  określa  interpretację  sekwencji  bajtów   jako   znaków   (np.   znaki
              jednobajtowe   albo   wielobajtowe),  klasyfikację  znaków  (np.  alfabetyczna  lub
              numeryczna) i zachowanie klas  znaków.  W  systemach  glibc  ta  kategoria  określa
              również  reguły  transliteracji  znaków  do iconv(1) i iconv(3). Zmienia zachowanie
              operacji na znakach i funkcji klasyfikacyjnych, takich jak isupper(3) i toupper(3),
              oraz znakowych funkcji wielobajtowych, takich jak mblen(3) i wctomb(3).

       LC_IDENTIFICATION (rozszerzenie GNU, od glibc 2.2)
              Zmienia   ustawienia  powiązane  z  metadanymi  locale.  Aplikacje  wymagające  tej
              informacji mogą korzystać z nl_langinfo(3) do pozyskania niestandardowych elementów
              takich    jak    _NL_IDENTIFICATION_TITLE   (tytuł   tego   dokumentu   locale)   i
              _NL_IDENTIFICATION_TERRITORY (terytorium geograficzne do  którego  odnosi  się  ten
              dokument  locale),  które  mogą  zwrócić łańcuchy takie jak "English locale for the
              USA" i "USA". Inne nazwy elementów są wypisane w <langinfo.h>.

       LC_MONETARY
              Kategoria określa  formatowanie  używane  do  wartości  numerycznych  związanych  z
              pieniędzmi.  Zmienia informację zwracaną przez localeconv(3), która opisuje sposób,
              w jaki zwykle drukowane są liczby, ze  szczegółami  takimi  jak  kropka  dziesiętna
              kontra  przecinek  dziesiętny. Informacja ta jest używana wewnętrznie przez funkcję
              strfmon(3).

       LC_MESSAGES
              Kategoria wpływa na język, w którym wyświetlane są komunikaty, oraz to, jak wygląda
              odpowiedź  twierdząca  i  przecząca.  Biblioteka  GNU C zawiera funkcje gettext(3),
              ngettext(3) oraz rpmatch(3), ułatwiające użycie  tych  informacji.  Funkcje  GNU  z
              rodziny  gettext  biorą  pod uwagę również zmienną środowiska LANGUAGE (zawierającą
              rozdzieloną  dwukropkami  listę  ustawień  językowych),  jeśli  bieżące  ustawienia
              językowe  są  poprawne  i  różne  od "C". Ta kategoria wpływa również na zachowanie
              catopen(3).

       LC_MEASUREMENT (rozszerzenie GNU, od glibc 2.2)
              Zmienia ustawienia związane z systemem miar w locale (np. metryczny albo  jednostki
              używane   w   USA).   Aplikacje  mogą  korzystać  z  nl_langinfo(3)  do  pozyskania
              niestandardowego elementu _NL_MEASUREMENT_MEASUREMENT,  który  zwraca  wskaźnik  do
              znaku który ma wartość 1 (system metryczny) lub 2 (system imperialny).

       LC_NAME (rozszerzenie GNU, od glibc 2.2)
              Zmienia   ustawienia  opisujące  formy  grzecznościowe.  Aplikacje  wymagające  tej
              informacji mogą korzystać z nl_langinfo(3) do pozyskania niestandardowych elementów
              takich  jak  _NL_NAME_NAME_MR  (forma  grzecznościowa dla panów) i _NL_NAME_NAME_MS
              (forma grzecznościowa dla pań), które zwracają łańcuchy takie jak "Herr"  i  "Frau"
              (dla  niemieckich  ustawień  regionalnych).  Inne  nazwy  elementów  są  wypisane w
              <langinfo.h>.

       LC_NUMERIC
              Kategoria  określa  reguły   formatowania   używane   dla   wartości   numerycznych
              niezwiązanych z pieniędzmi - np. separator tysięcy i separator dziesiętny (kropka w
              większości krajów anglojęzycznych lub przecinek w wielu innych).  Wpływa  na  takie
              funkcje,  jak printf(3), scanf(3) i strtod(3). Tę informację można również odczytać
              za pomocą localeconv(3).

       LC_PAPER (rozszerzenie GNU, od glibc 2.2)
              Zmienia ustawienia związane z wymiarami standardowego rozmiaru papieru (np.  letter
              albo   A4).   Aplikacje   wymagające   wymiarów  mogą  je  pozyskać  korzystając  z
              nl_langinfo(3),   aby   otrzymać   niestandardowe   elementy   _NL_PAPER_WIDTH    i
              _NL_PAPER_HEIGHT, które zwrócą wartości int określające wymiary w milimetrach.

       LC_TELEPHONE (rozszerzenie GNU, od glibc 2.2)
              Zmienia  ustawienia  opisujące  formaty używane w telefonii. Aplikacji potrzebujące
              tej informacji mogą korzystać z nl_langinfo(3) aby pobrać  niestandardowe  elementy
              takie  jak  _NL_TELEPHONE_INT_PREFIX  (międzynarodowy  prefiks  używany do wybrania
              numerów w tym locale), który zwróci przykładowo "49" (dla Niemiec).  Inne  elementy
              są wypisane w <langinfo.h>.

       LC_TIME
              Kategoria  określa formatowanie wartości daty i czasu. Przykładowo większość Europy
              używa zegara 24-godzinnego, a w USA korzysta się z zegara 12-godzinnego. Ustawienie
              w tej kategorii wpływa na zachowanie funkcji takich jak strftime(3) i strptime(3).

       LC_ALL Wszystko powyższe.

       Jeśli  drugim  argumentem  setlocale(3) jest łańcuch pusty "" oznaczający locale domyślne,
       ustala się je w następujący sposób:

       1.     Jeśli istnieje niepusta zmienna środowiskowa LC_ALL, używana jest wartość LC_ALL

       2.     Jeśli istnieje i jest niepusta zmienna środowiskowa o tej samej nazwie co  jedna  z
              kategorii powyżej, dla tej kategorii używana jest jej wartość.

       3.     Jeśli istnieje niepusta zmienna środowiskowa LANG, używana jest wartość LANG

       Wartości  dotyczące lokalnego formatowania dostępne są w strukturze lconv, zwracanej przez
       funkcję localeconv(3). lconv ma następującą deklarację:

         struct lconv {

             /* Informacja numeryczna (niewalutowa) */

             char *decimal_point;     /* Znak dziesiętny  */
             char *thousands_sep;     /* Separator tysięcy  */
             char *grouping; /* Każdy element to liczba cyfr w danej grupie,
                                elementy z większymi indeksami są bardziej
                                na lewo. Element o wartości CHAR_MAX oznacza,
                                że nie następuje dalsze grupowanie. Element
                                o wartości 0 oznacza, że dla wszystkich
                                grup bardziej na lewo używany jest element
                                poprzedni. */

             /* Pozostałe pola zawierają informacje o walucie */

             char *int_curr_symbol;   /* Pierwsze trzy znaki to symbol waluty
                                         z ISO 4217. Czwarty znak to
                                         separator. Piąty to "\0". */
             char *currency_symbol;   /* Symbol lokalnej waluty  */
             char *mon_decimal_point; /* Znak dziesiętny  */
             char *mon_thousands_sep; /* Jak thousands_sep (powyżej) */
             char *mon_grouping;      /* Jak grouping (powyżej) */
             char *positive_sign;     /* Znak dla wartości dodatnich */
             char *negative_sign;     /* Znak dla wartości ujemnych */
             char  int_frac_digits;   /* Międzynarodowe cyfry dziesiętne */
             char  frac_digits;       /* Lokalne cyfry dziesiętne */
             char  p_cs_precedes;     /* 1, jeśli symbol waluty poprzedza wartość
                                         dodatnią, 0, jeśli następuje po niej */
             char  p_sep_by_space;    /* 1, jeśli symbol waluty oddziela
                                         od wartości dodatniej spacja */
             char  n_cs_precedes;     /* 1, jeśli symbol waluty poprzedza wartość
                                         ujemną, 0 jeśli następuje po niej */
             char  n_sep_by_space;    /* 1, jeśli symbol waluty oddziela
                                         od wartości ujemnej spacja */
             /* Dodatnie i ujemne pozycje znaku:
                0 Wartość i symbol waluty w nawiasach.
                1 Znak poprzedza wartość i symbol waluty.
                2 Znak następuje po wartości i symbolu waluty.
                3 Znak następuje tuż przez symbolem waluty.
                4 Znak następuje tuż po symbolu waluty. */
             char p_sign_posn;
             char n_sign_posn;
         };

   Rozszerzenia POSIX.1-2008 do API locale
       POSIX.1-2008 standaryzuje wiele rozszerzeń API locale w  oparciu  o  implementację,  która
       pojawiła  się  jako  pierwsza  w  wersji 2.3 biblioteki GNU C. Rozszerzenia opracowano aby
       rozwiązać problemy z tradycyjnym API locale, które nie radziło sobie dobrze z  aplikacjami
       wielowątkowymi i z programami które korzystają z wielu ustawień regionalnych.

       Rozszerzenia zajmują się formą nowych funkcji do tworzenia i działania na obiektach locale
       (newlocale(3), freelocale(3), duplocale(3) i uselocale(3)) oraz różnymi  nowymi  funkcjami
       bibliotycznymi  z  przyrostkiem  "_l"  (np.  toupper_l(3)),  które rozszerzają tradycyjne,
       zależne od ustawień regionalnych API (np. toupper(3))  pozwalając  na  określenie  obiektu
       locale który ma zostać zastosowany przy wykonywaniu funkcji.

ŚRODOWISKO

       Następujące zmienne środowiskowe są używane przez newlocale(3) i setlocale(3) wpływając na
       wszystkie nieuprzywilejowane zlokalizowane programy:

       LOCPATH
              Lista ścieżek oddzielonych dwukropkami ":",  które  służą  do  odnalezienia  danych
              locale.   Jeżeli   zmienna   jest  ustawiona,  to  używane  są  tylko  skompilowane
              indywidualnie pliki z danymi z LOCPATH oraz  z  domyślnej  ścieżki  danych  locale,
              natomiast  dostępne  archiwa  lokalne  nie  są  wykorzystywane (zob. localedef(1)).
              Indywidualnie kompilowane pliki z danymi  locale  są  wyszukiwane  w  podkatalogach
              zależnych  od  bieżących  ustawień  regionalnych.  Przykładowo  jeśli dla kategorii
              wykorzystuje się  en_GB.UTF-8,  to  przeszukiwane  są  następujące  podkatalogi  (w
              podanej kolejności): en_GB.UTF-8, en_GB.utf8, en_GB, en.UTF-8, en.utf8 i en.

PLIKI

       /usr/lib/locale/locale-archive
              Zwykle domyślne położenie archiwum locale.

       /usr/lib/locale
              Zwykle domyślna ścieżka dla skompilowanych indywidualnie plików locale.

ZGODNE Z

       POSIX.1-2001.

ZOBACZ TAKŻE

       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)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  4.05  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania błędów, oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są:  Gwidon  S.  Naskrent
       (PTM)  <naskrent@hoth.amu.edu.pl>,  Robert  Luberda  <robert@debian.org>  i  Michał Kułach
       <michal.kulach@gmail.com>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   4.05
       oryginału.