Provided by:
manpages-hu_20010119-5_all 
NÉV
locale - a többnyelvűség támogatásának leírása
ÁTTEKINTÉS
#include <locale.h>
LEÍRÁS
A locale nyelvi és kultúrális szabályok összesége. Magában foglalja az
a programok üzeneteinek nyelvét, különféle karakterkészleteket,
ábécésorrendet, stb. A programoknak meg kell tudniuk állapítani, hogy
milyen locale alatt futnak, és ennek megfelelően kell viselkedniük,
annak érdekében, hogy különböző kultúrák között hordozhatóak legyenek.
A <locale.h> fejlécfájl olyan adattípusokat, függvényeket és makrókat
deklarál, amelyek segítenek ezt a feladatot megoldani.
A setlocale() függvénnyel állíthatjuk be az aktuális locale-t. A
localeconv() függvény adja vissza számok formázásával kapcsolatos
információt.
A program által igényelt lokalizációs információk több kategóriába
sorolhatók, ezeket makróként deklarálták. A setlocale() függvény első
argumentumaként megadva lehet ezeket beállítani:
LC_COLLATE
Ez a strcoll() és a strxfrm(), függvények viselkedését
befolyásolja, amelyek két karakterláncot hasonlítanak össsze a
helyi ábácé szerint. Például a német "ß" az abécében az "ss"
betűkapcsolatnak felel meg.
LC_CTYPE
Ez a karakterkezelő és karakterosztályozó függvények
viselkedését változtatja meg, például az isupper() és a
toupper(), és a több-bájtos karaktereket kezelő függvényekét,
például az mblen() vagy az wctomb().
Az LC_MONETARY a localeconv() által visszadott értéket változtatja
meg, amely a számok nyomtatásának módját határozza meg, például
hogy tizedesvesszőt vagy tizedespontot használ-e az adott
locale. Ezt az információt az strfmon() függvény is használja.
Az LC_MESSAGES megváltoztatja az üzenetek nyelvét, és a beleegyező
illetve az elutasító válasz megjelenését. A GNU-C könyvtár
rpmatch() függvénye megkönnyíti ezeknek az információknak a
használatát.
Az LC_NUMERIC a printf() és a scanf() függvénycsalád által használt
információkat változtatja meg, ha figyelembe vetetjük velük a
locale beállítását. Ezt az információt a localeconv()
függvénnyel is kiolvashatjuk.
Az LC_TIME az strftime() függvény viselkedését változtatja meg
annak érdekében, hogy az időt az adott helynek megfelelő
formában írja ki. Például a legtöbb európai országban 24 órás
rendszerben mérik az időt, míg az USA-ban a 12 órás rendszert
használják.
LC_ALL Minden, ami eddig felsorolásra került.
Ha a setlocale() második argumentuma üres karakterlánc, "", akkor a
használandó locale a következő lépések szerint kerül meghatározásra:
1. Ha létezik az LC_ALL környezeti változó, és az értéke nem üres
karakterlánc, akkor az LC_ALL értékét fogja a függvény
használni.
2. Ha létezik egy a fenti kategóriákkal megegyező nevű környezeti
változó, és az értéke nem üres karakterlánc, akkor annak az
értékét fogja a függvény használni arra a kategóriára.
3. Ha létezik a LANG környezeti változó, és az értéke nem üres
karakterlánc, akkor a LANG értékét fogja a függvény használni.
A számok formátumát az struct lconv struktúrából olvashatjuk ki,
amelyet a localeconv() függvény ad vissza. A struktúra deklarációja a
következő:
struct lconv
{
/* Numerikus (nem pénzügyi) információk */
char *decimal_point; /* tizedespont karakter */
char *thousands_sep; /* az ezreseket elválasztó karakter */
/* Minden elem az adott csoportban lévő számjegyek számát adja meg,
jobbról balra. Ha egy elem értéke CHAR_MAX, az azt jelenti, hogy nincs
további csoportosítás. Ha egy elem értéke 0, az azt jelenti, hogy az
előző elem értéket kell használni az ettől balra eső csoportokra. */
char *grouping;
/* Pénzügyi információk */
/* Az első három karakter a pénznem jele az ISO 4217 szerint.
A negyedik karakter az elválasztó, az ötödik ' '. */
char *int_curr_symbol;
char *currency_symbol; /* a helyi pénznem jele */
char *mon_decimal_point; /* tizedespont karakter */
char *mon_thousands_sep; /* az ezreseket elválasztó karakter */
char *mon_grouping; /* mint a `grouping' elem (lásd fent) */
char *positive_sign; /* pozitív előjel */
char *negative_sign; /* negatív előjel */
char int_frac_digits; /* nemzetközi tört számjagyek */
char frac_digits; /* helyi tört számjegyek */
/* 1 ha a currency_symbol a pozitív érték előtt van, 0 ha mögötte. */
char p_cs_precedes;
/* 1 ha a currency_symbol és a pozitív érték között van szóköz. */
char p_sep_by_space;
/* 1 ha a currency_symbol a negatív érték előtt van, 0 ha mögötte. */
char n_cs_precedes;
/* 1 ha a currency_symbol és a negatív érték között van szóköz. */
char n_sep_by_space;
/* A pozitív és negatív előjel pozíciója:
0 a mennyiség és a currency_symbol zárójelben van.
1 Az előjel a mennyiség és a currency_symbol előtt van.
2 Az előjel a mennyiség és a currency_symbol mögött van.
3 Az előjel közvetlenül a mennyiség és a currency_symbol előtt van.
4 Az előjel közvetlenül a mennyiség és a currency_symbol mögött van. */
char p_sign_posn;
char n_sign_posn;
};
MEGFELELÉS
POSIX.1
LÁSD MÉG
setlocale(3), localeconv(3), locale(1), localedef(1), rpmatch(3),
strfmon(3), strcoll(3), strxfrm(3), strftime(3)
MAGYAR FORDÍTÁS
Tímár András <timar_a@freemail.hu>