jammy (7) locale.7.gz

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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.