Provided by: manpages-hu_20010119-5_all bug

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>