Rechercher une page de manuel

Chercher une autre page de manuel:

locale

Autres langues

Langue: hu

Autres versions - même langue

Version: April 24, 1993 (ubuntu - 01/11/07)

Autres sections - même nom

Section: 7 (Divers)

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>
OEUVRE DE FOI

P : T'es en train de nous chier un chapelet !
M : Ouais... Et le plus dur, c'est de faire la croix...