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>