Provided by: manpages-pl_4.26.0-1_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 {

               /* Informacje numeryczne (niewalutowe) */

               char *decimal_point;     /* Znak dziesiętny */
               char *thousands_sep;     /* Separator grup cyfr po lewej
                                           stronie znaku dziesiętnego */
               char *grouping;     /* Każdy element jest liczbą cyfr
                                      w grupie; elementy z wyższym indeksem są
                                      bardziej na lewo. Element o wartości
                                      CHAR_MAX oznacza, że dalsze grupowanie
                                      nie następuje. Element o wartości 0 oznacza,
                                      że poprzedni element jest używany do
                                      pozostałych grup po lewej stronie. */

               /* Pozostałe pola służą do informacji walutowych */

               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 glibc 2.3. 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 bibliotecznymi 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.

STANDARDY

       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)

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 man-pages 6.9.1                          15 czerwca 2024 r.                                      locale(7)