focal (7) locale.7.gz

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.