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.

Linux                                              2015-07-23                                          LOCALE(7)