Provided by: manpages-pl_0.6-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. 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 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 pliki z danymi z LOCPATH
              oraz  z  domyślnej ścieżki danych locale, natomiast dostępne archiwa lokalne nie są
              wykorzystywane.  Pliki  z  danymi  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.

ZGODNE Z

       POSIX.1-2001.

ZOBACZ TAKŻE

       locale(1), localedef(1), catopen(3), gettext(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  3.71  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania błędów, oraz najnowszą wersję oryginału można
       znaleźć pod adresem http://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ą   3.71
       oryginału.