.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\" and Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.\" Modified Sat Jul 24 17:28:34 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Sun Jun 01 17:16:34 1997 by Jochen Hein
.\"   <jochen.hein@delphi.central.de>
.\" Modified Thu Apr 25 00:43:19 2002 by Bruno Haible <bruno@clisp.org>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\" This file is distributed under the same license as original manpage
.\" Copyright of the original manpage:
.\" Copyright © 1993 Thomas Koenig 
.\" Copyright © of Polish translation:
.\" Gwidon S. Naskrent (PTM) <naskrent@hoth.amu.edu.pl>, 1998.
.\" Robert Luberda <robert@debian.org>, 2006, 2012.
.\" Michał Kułach <michal.kulach@gmail.com>, 2013, 2014, 2016.
.TH LOCALE 7 2015\-07\-23 Linux "Podręcznik programisty Linuksa"
.SH NAZWA
locale \- opis obsługi wielu języków
.SH SKŁADNIA
.nf
\fB#include <locale.h>\fP
.fi
.SH 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.
.PP
Nagłówek \fI<locale.h>\fP deklaruje typy danych, funkcje i makra
przydatne w tym przedsięwzięciu.
.PP
Funkcje deklarowane to \fBsetlocale\fP(3), ustawiająca bieżące locale, i
\fBlocaleconv\fP(3), pobierająca informacje o formatowaniu liczb.
.PP
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 \fBsetlocale\fP(3), możliwe jest ustawienie poniższych
informacji regionalnych:
.TP 
\fBLC_ADDRESS\fP (rozszerzenie GNU, od glibc 2.2)
.\" See ISO/IEC Technical Report 14652
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 \fBnl_langinfo\fP(3) do pozyskania niestandardowych
elementów, takich jak \fB_NL_ADDRESS_COUNTRY_NAME\fP (nazwa kraju w danym
języku) i \fB_NL_ADDRESS_LANG_NAME\fP (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 \fI<langinfo.h>\fP.)
.TP 
\fBLC_COLLATE\fP
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 \fBstrcoll\fP(3)
i \fBstrxfrm\fP(3), porównujących łańcuchy znaków w alfabecie lokalnym. Na
przykład niemieckie scharfes S sortowane jest jako "ss".
.TP 
\fBLC_CTYPE\fP
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 \fBiconv\fP(1) i \fBiconv\fP(3). Zmienia
zachowanie operacji na znakach i funkcji klasyfikacyjnych, takich jak
\fBisupper\fP(3) i \fBtoupper\fP(3), oraz znakowych funkcji wielobajtowych, takich
jak \fBmblen\fP(3) i \fBwctomb\fP(3).
.TP 
\fBLC_IDENTIFICATION\fP (rozszerzenie GNU, od glibc 2.2)
.\" See ISO/IEC Technical Report 14652
Zmienia ustawienia powiązane z metadanymi locale. Aplikacje wymagające tej
informacji mogą korzystać z \fBnl_langinfo\fP(3) do pozyskania niestandardowych
elementów takich jak \fB_NL_IDENTIFICATION_TITLE\fP (tytuł tego dokumentu
locale) i \fB_NL_IDENTIFICATION_TERRITORY\fP (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
\fI<langinfo.h>\fP.
.TP 
\fBLC_MONETARY\fP
Kategoria określa formatowanie używane do wartości numerycznych związanych z
pieniędzmi. Zmienia informację zwracaną przez \fBlocaleconv\fP(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ę \fBstrfmon\fP(3).
.TP 
\fBLC_MESSAGES\fP
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
\fBgettext\fP(3), \fBngettext\fP(3) oraz \fBrpmatch\fP(3), ułatwiające użycie tych
informacji. Funkcje GNU z rodziny gettext biorą pod uwagę również zmienną
środowiska \fBLANGUAGE\fP (zawierającą rozdzieloną dwukropkami listę ustawień
językowych), jeśli bieżące ustawienia językowe są poprawne i różne od
\fB"C"\fP. Ta kategoria wpływa również na zachowanie \fBcatopen\fP(3).
.TP 
\fBLC_MEASUREMENT\fP (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 \fBnl_langinfo\fP(3) do
pozyskania niestandardowego elementu \fB_NL_MEASUREMENT_MEASUREMENT\fP, który
zwraca wskaźnik do znaku który ma wartość 1 (system metryczny) lub 2 (system
imperialny).
.TP 
\fBLC_NAME\fP (rozszerzenie GNU, od glibc 2.2)
.\" See ISO/IEC Technical Report 14652
Zmienia ustawienia opisujące formy grzecznościowe. Aplikacje wymagające tej
informacji mogą\ korzystać z \fBnl_langinfo\fP(3) do pozyskania niestandardowych
elementów takich jak \fB_NL_NAME_NAME_MR\fP (forma grzecznościowa dla panów) i
\fB_NL_NAME_NAME_MS\fP (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 \fI<langinfo.h>\fP.
.TP 
\fBLC_NUMERIC\fP
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 \fBprintf\fP(3), \fBscanf\fP(3) i
\fBstrtod\fP(3). Tę informację można również odczytać za pomocą
\fBlocaleconv\fP(3).
.TP 
\fBLC_PAPER\fP (rozszerzenie GNU, od glibc 2.2)
.\" See ISO/IEC Technical Report 14652
Zmienia ustawienia związane z wymiarami standardowego rozmiaru papieru
(np. letter albo A4). Aplikacje wymagające wymiarów mogą je pozyskać
korzystając z \fBnl_langinfo\fP(3), aby otrzymać niestandardowe elementy
\fB_NL_PAPER_WIDTH\fP i \fB_NL_PAPER_HEIGHT\fP, które zwrócą wartości \fIint\fP
określające wymiary w milimetrach.
.TP 
\fBLC_TELEPHONE\fP (rozszerzenie GNU, od glibc 2.2)
.\" See ISO/IEC Technical Report 14652
Zmienia ustawienia opisujące formaty używane w telefonii. Aplikacji
potrzebujące tej informacji mogą korzystać z \fBnl_langinfo\fP(3) aby pobrać
niestandardowe elementy takie jak \fB_NL_TELEPHONE_INT_PREFIX\fP
(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
\fI<langinfo.h>\fP.
.TP 
\fBLC_TIME\fP
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 \fBstrftime\fP(3) i \fBstrptime\fP(3).
.TP 
\fBLC_ALL\fP
Wszystko powyższe.
.PP
Jeśli drugim argumentem \fBsetlocale\fP(3) jest łańcuch pusty \fB""\fP oznaczający
locale domyślne, ustala się je w następujący sposób:
.IP 1.
Jeśli istnieje niepusta zmienna środowiskowa \fBLC_ALL\fP, używana jest wartość
\fBLC_ALL\fP
.IP 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ść.
.IP 3.
Jeśli istnieje niepusta zmienna środowiskowa \fBLANG\fP, używana jest wartość
\fBLANG\fP
.PP
Wartości dotyczące lokalnego formatowania dostępne są w strukturze \fIlconv\fP,
zwracanej przez funkcję \fBlocaleconv\fP(3). \fIlconv\fP ma następującą
deklarację:
.in +2n
.nf

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 "\e0". */
    char *currency_symbol;   /* Symbol lokalnej waluty  */
    char *mon_decimal_point; /* Znak dziesiętny  */
    char *mon_thousands_sep; /* Jak \fIthousands_sep\fP (powyżej) */
    char *mon_grouping;      /* Jak \fIgrouping\fP (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;
};
.fi
.in
.SS "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 (\fBnewlocale\fP(3), \fBfreelocale\fP(3), \fBduplocale\fP(3) i
\fBuselocale\fP(3)) oraz różnymi nowymi funkcjami bibliotycznymi z przyrostkiem
"_l" (np. \fBtoupper_l\fP(3)), które rozszerzają tradycyjne, zależne od
ustawień regionalnych API (np. \fBtoupper\fP(3)) pozwalając na określenie
obiektu locale który ma zostać zastosowany przy wykonywaniu funkcji.
.SH ŚRODOWISKO
Następujące zmienne środowiskowe są używane przez \fBnewlocale\fP(3) i
\fBsetlocale\fP(3) wpływając na wszystkie nieuprzywilejowane zlokalizowane
programy:
.TP 
\fBLOCPATH\fP
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 \fILOCPATH\fP oraz z domyślnej
ścieżki danych locale, natomiast dostępne archiwa lokalne nie są
wykorzystywane (zob. \fBlocaledef\fP(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ę
\fIen_GB.UTF\-8\fP, to przeszukiwane są następujące podkatalogi (w podanej
kolejności): \fIen_GB.UTF\-8\fP, \fIen_GB.utf8\fP, \fIen_GB\fP, \fIen.UTF\-8\fP,
\fIen.utf8\fP i \fIen\fP.
.SH PLIKI
.TP 
\fI/usr/lib/locale/locale\-archive\fP
Zwykle domyślne położenie archiwum locale.
.TP 
\fI/usr/lib/locale\fP
Zwykle domyślna ścieżka dla skompilowanych indywidualnie plików locale.
.SH "ZGODNE Z"
.\"
.\" The GNU gettext functions are specified in LI18NUX2000.
POSIX.1\-2001.
.SH "ZOBACZ TAKŻE"
\fBiconv\fP(1), \fBlocale\fP(1), \fBlocaledef\fP(1), \fBcatopen\fP(3), \fBgettext\fP(3),
\fBiconv\fP(3), \fBlocaleconv\fP(3), \fBmbstowcs\fP(3), \fBnewlocale\fP(3),
\fBngettext\fP(3), \fBnl_langinfo\fP(3), \fBrpmatch\fP(3), \fBsetlocale\fP(3),
\fBstrcoll\fP(3), \fBstrfmon\fP(3), \fBstrftime\fP(3), \fBstrxfrm\fP(3),
\fBuselocale\fP(3), \fBwcstombs\fP(3), \fBlocale\fP(5), \fBcharsets\fP(7),
\fBunicode\fP(7), \fButf\-8\fP(7)
.SH "O STRONIE"
Angielska wersja tej strony pochodzi z wydania 4.05 projektu Linux
\fIman\-pages\fP. 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/.
.SH 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>.
.PP
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ą \fB 4.05 \fPoryginału.
