locale

Autres langues

Langue: pl

Autres versions - même langue

Version: 20 wrze¶nia 1998 (openSuse - 09/10/07)

Autres sections - même nom

Section: 7 (Divers)

NAZWA

locale - opis obs³ugi wielu jêzyków

STRESZCZENIE


#include <locale.h>

OPIS

Locale to zestaw regu³ jêzykowych i kulturalnych. Pokrywaj± 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() ustawiaj±ca bie¿±ce locale i localeconv() pobieraj±ca informacje o formatowaniu liczb.

Istniej± ró¿ne kategorie lokalnej informacji której potrzebowaæ mo¿e program; zadeklarowane s± one jako makra. U¿ywaj±c ich jako pierwszy argument funkcji setlocale() mo¿liwe jest ustawienie jednego z poni¿szych na ¿±dane locale:

LC_COLLATE
U¿ywane do zmiany zachowania funkcji strcoll() i strxfrm(), które u¿ywane s± do porównywania ³añcuchów w alfabecie lokalnym. Na przyk³ad niemieckie scharfes s sortowane jest jako "ss".
LC_CTYPE
Zmienia zachowanie operacji na znakach i funkcji klasyfikacyjnych, takich jak isupper() i toupper(), oraz znakowych funkcji wielobajtowych takich jak mblen() i wctomb()
LC_MONETARY
Zmienia informacjê zwracan± przez localeconv() która opisuje sposób w jaki zwykle drukowane s± liczby, ze szczegó³ami takimi jak kropka dziesiêtna vs. przecinek dziesiêtny. Informacja ta jest u¿ywana wewnêtrznie przez funkcjê strfmon()
LC_MESSAGES
Zmienia 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(), ngettext() oraz rpmatch() u³atwiaj±ce u¿ycie tych informacji. Funkcje GNU z rodziny gettext s³uchaj± równie¿ zmiennej LANGUAGE.
LC_NUMERIC
Zmienia informacje u¿ywane przez rodzinê funkcji printf() i scanf() , kiedy radzi im siê ¿eby u¿ywa³y ustawieñ locale. Informacja ta mo¿e byæ tak¿e odczytana funkcj± localeconv() .
LC_TIME
Zmienia zachowanie funkcji strftime() , wy¶wietlaj±cej bie¿±cy czas w formie lokalnie akceptowalnej; na przyk³ad, wiêkszo¶æ Europy u¿ywa zegara 24-godzinnego, vs. 12-godzinnego w USA.
LC_ALL
Wszystko powy¿ej.

Je¶li drugim argumentem setlocale() jest ³añcuch pusty oznaczaj±cy locale domy¶lne, ustala siê je wedle poni¿szych kroków:

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() . lconv ma nastêpuj±c± deklaracjê:


struct lconv

{

  /* Informacja numeryczna (nie-monetarna)  */



  char *decimal_point;          /* Znak dziesiêtny  */

  char *thousands_sep;          /* Separator tysiêcy  */

  /* Ka¿dy element to ilo¶æ 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. */

  char *grouping;



  /* Informacja monetarna  */



  /* Pierwsze trzy znaki to symbol waluty z ISO 4217. Czwarty znak to

     separator.  Pi±ty to ' '.  */

  char *int_curr_symbol;

  char *currency_symbol;        /* Symbol lokalnej waluty  */

  char *mon_decimal_point;      /* Znak dziesiêtny  */

  char *mon_thousands_sep;      /* Separator tysiêcy  */

  char *mon_grouping;           /* Jak element 'grupuj±cy' (wy¿ej)  */

  char *positive_sign;          /* Znak dla warto¶ci dodatnich  */

  char *negative_sign;          /* Znak dla warto¶ci ujemnych  */

  char int_frac_digits;         /* Miêdzynar. cyfry dziesiêtne  */

  char frac_digits;             /* Lokalne cyfry dziesiêtne  */

  /* 1 je¶li symbol waluty poprzedza warto¶æ dodatni±, 0 je¶li nastêpuje */

  char p_cs_precedes;

  /* 1 je¶li symbol waluty oddziela od warto¶ci dodatniej spacja */

  char p_sep_by_space;

  /* 1 je¶li symbol waluty poprzedza warto¶æ ujemn±, 0 je¶li nastêpuje */

  char n_cs_precedes;

  /* 1 je¶li symbol waluty oddziela od warto¶ci ujemnej spacja */

  char n_sep_by_space;

  /* 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;

};

ZGODNE Z


POSIX.1

Funkcje GNU gettext s± zdefiniowane w LI18NUX2000.

ZOBACZ TAK¯E

setlocale(3), localeconv(3), locale(1), localedef(1), nl_langinfo(3), gettext(3), ngettext(3), rpmatch(3), strfmon(3), strcoll(3), strxfrm(3), strftime(3)