Provided by: manpages-pl_4.13-4_all 

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)