Linux
2015-07-23
manpages-pl
Polish man pages
man-pages-pl
Polish man pages from the Linux Documentation Project
manpages
Manual pages about using a GNU/Linux system
man-pages
Linux kernel and C library user-space interface documentation
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.
Jeśli drugim argumentem setlocale(3) jest łańcuch pusty "" oznaczający locale domyślne, ustala się je w następujący sposób:
Wartości dotyczące lokalnego formatowania dostępne są w strukturze lconv, zwracanej przez funkcję localeconv(3). lconv ma następującą deklarację:
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. |
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 |
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
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>, Robert Luberda <robert> i Michał Kułach <michal.kulach>.
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.
REFERENCED BY
crontab(5), Compose(5), catopen(3), duplocale(3), isalpha(3), localeconv(3), newlocale(3), nl_langinfo(3), setlocale(3), strerror(3), strfmon(3), toupper(3), towlower(3), towupper(3), uselocale(3), locale(1), localedef(1), locale(5), environ(7), glob(7), pg(1), X(7), koi8rxterm(1), uxterm(1), iconv(1), newmail(1), procenv(1), mailx(1), ex(1), vi(1), trader(6), myman(6)