Provided by: manpages-pl_4.13-4_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.

       If the second argument to setlocale(3)  is an empty string, "", for the default locale, it is  determined
       using the following steps:

       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;     /* Radix character */
               char *thousands_sep;     /* Separator for digit groups to left
                                           of radix character */
               char *grouping;     /* Each element is the number of digits in
                                      a group; elements with higher indices
                                      are further left.  An element with value
                                      CHAR_MAX means that no further grouping
                                      is done.  An element with value 0 means
                                      that the previous element is used for
                                      all groups further left. */

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

               char *int_curr_symbol;   /* First three chars are a currency
                                           symbol from ISO 4217.  Fourth char
                                           is the separator.  Fifth char
                                           is '\0'. */
               char *currency_symbol;   /* Local currency symbol */
               char *mon_decimal_point; /* Radix character */
               char *mon_thousands_sep; /* Like thousands_sep above */
               char *mon_grouping;      /* Like grouping above */
               char *positive_sign;     /* Sign for positive values */
               char *negative_sign;     /* Sign for negative values */
               char  int_frac_digits;   /* International fractional digits */
               char  frac_digits;       /* Local fractional digits */
               char  p_cs_precedes;     /* 1 if currency_symbol precedes a
                                           positive value, 0 if succeeds */
               char  p_sep_by_space;    /* 1 if a space separates
                                           currency_symbol from a positive
                                           value */
               char  n_cs_precedes;     /* 1 if currency_symbol precedes a
                                           negative value, 0 if succeeds */
               char  n_sep_by_space;    /* 1 if a space separates
                                           currency_symbol from a negative
                                           value */
               /* Positive and negative sign positions:
                  0 Parentheses surround the quantity and currency_symbol.
                  1 The sign string precedes the quantity and currency_symbol.
                  2 The sign string succeeds the quantity and currency_symbol.
                  3 The sign string immediately precedes the currency_symbol.
                  4 The sign string immediately succeeds the currency_symbol. */
               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
              A  list of pathnames, separated by colons (':'), that should be used to find locale data.  If this
              variable is set, only the individual compiled locale  data  files  from  LOCPATH  and  the  system
              default  locale data path are used; any available locale archives are not used (see localedef(1)).
              The individual compiled locale data files are searched for under subdirectories  which  depend  on
              the  currently  used  locale.  For example, when en_GB.UTF-8 is used for a category, the following
              subdirectories are searched for, in this order: en_GB.UTF-8, en_GB.utf8, en_GB, en.UTF-8, en.utf8,
              and 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 5.10 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   są:   Gwidon   S.   Naskrent
       <naskrent@hoth.amu.edu.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux                                            6 marca 2019 r.                                       LOCALE(7)