Pluto Free Software Users Group Pluto Free Software Users Group
LOCALE(7) manual page Table of Contents

Nome

locale - Descrizione del supporto multi-linguistico

Sintassi

#include <locale.h>

Descrizione

Un locale è un insieme di regole linguistiche e culturali che coprono campi come la lingua dei messaggi, insiemi di caratteri, convenzioni lessicografiche, ecc. Un programma deve poter determinare il suo locale e agire di conseguenza per poter essere adattato a culture diverse.

L'header <locale.h> dichiara i tipi di dati, funzioni e macro utili per questo scopo.

Le funzioni che vengono dichiarate sono setlocale() per impostare il locale corrente e localeconv() per ottenere informazioni sul modo di formattare i numeri.

Le differenti categorie di informazioni locali di cui un programma potrebbe aver bisogno vengono dichiarate come macro. Usandole come primo argomento alla funzione setlocale() è possibile impostare uno dei seguenti locali

LC_COLLATE
viene usato per modificare il comportamento delle funzioni strcoll() e strxfrm(), che servono per confrontare stringhe nell'alfabeto locale. Ad esempio, la «ß» tedesca viene ordinata lessicograficamente come «ss».
LC_CTYPE
modifica il comportamento delle funzioni che maneggiano e classificano caratteri, come isupper() e toupper(), e le funzioni per caratteri a più byte come mblen() o wctomb().
LC_MONETARY
cambia l'informazione restituita da localeconv(), la quale descrive il modo in cui i numeri vengono normalmente stampati, compresi dettagli come l'uso del punto o della virgola decimale. Questa informazione è usata internamente dalla funzione strfmon() .
LC_MESSAGES
cambia il linguaggio in cui i messaggi vengono mostrati e la forma delle risposte positive o negative. La libreria C di GNU contiene la funzione rpmatch() per facilitare l'impiego di queste informazioni.
LC_NUMERIC
cambia l'informazione usata dalle famiglie di funzioni printf() e scanf(), quando viene loro richiesto di usare le impostazioni locali. Queste informazioni possono anche essere lette tramite la funzione localeconv().
LC_TIME
modifica il comportamento della funzione strftime() onde mostrare l'ora in una forma localmente accettabile; per esempio, in buona parte d'Europa si usano le 24 ore, a differenza delle 12 ore degli USA.
LC_ALL
Vale per tutte le macro precedenti.

Se il secondo argomento a setlocale() è la stringa vuota , allora il locale di default è determinato come segue:

1.
Se è presente una variabile ambientale non nulla LC_ALL, viene usato il valore di LC_ALL.
2.
Se una variabile ambientale con lo stesso nome di una delle categorie precedenti esiste ed è non nulla, il suo valore viene usato per quella categoria.
3.
Se è presente una variabile ambientale non nulla LANG, viene usato il valore di LANG.

I valori che descrivono la formattazione locale dei numeri è dispobili in una struct lconv restituita dalla funzione localeconv(), che è così dichiarata: struct lconv
{
/* Numeric (non-monetary) information. */

char *decimal_point;        /* Decimal point character. */
char *thousands_sep;        /* Thousands separator. */
/* Each element is the number of digits in each group;
elements with higher indices are farther left.
An element with value CHAR_MAX means that no further grouping is done.
An element with value 0 means that the previous element is used
for all groups farther left. */
char *grouping;

/* Monetary information. */

/* First three chars are a currency symbol from ISO 4217.
Fourth char is the separator. Fifth char is ' '. */
char *int_curr_symbol;
char *currency_symbol;    /* Local currency symbol. */
char *mon_decimal_point;    /* Decimal point character. */
char *mon_thousands_sep;    /* Thousands separator. */
char *mon_grouping;        /* Like `grouping' element (above). */
char *positive_sign;        /* Sign for positive values. */
char *negative_sign;        /* Sign for negative values. */
char int_frac_digits;        /* Int'l fractional digits. */
char frac_digits;        /* Local fractional digits. */
/* 1 if currency_symbol precedes a positive value, 0 if succeeds. */
char p_cs_precedes;
/* 1 if a space separates currency_symbol from a positive value. */
char p_sep_by_space;
/* 1 if currency_symbol precedes a negative value, 0 if succeeds. */
char n_cs_precedes;
/* 1 if a space separates currency_symbol from a negative value. */
char n_sep_by_space;
/* Positive and negative sign positions:
0 Parentheses surround the quantity and currency_symbol.
1 The sign string precedes the quantity and currency_symbol.
2 The sign string succeeds the quantity and currency_symbol.
3 The sign string immediately precedes the currency_symbol.
4 The sign string immediately succeeds the currency_symbol. */
char p_sign_posn;
char n_sign_posn;
};

Conforme a

POSIX.1

Vedere Anche

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


Table of Contents

HOWTO
Guide LDP
Italian HOWTO
AppuntiLinux
LDR
Pagine man
      man1
      man2
      man3
      man4
      man5
      man6
      man7
      man8
FAQ di icl
Gnome
Altri documenti
Mirror ildp
Meeting
Pluto Journal
Mailing List
Disclaimer
Area ftp
Cerca
Pluto home

Copyright © 2001 Pluto Free Software Users Group
pluto@pluto.linux.it

Valid HTML 4.01!

webmaster @ pluto.linux.it
Il Pluto ringrazia i suoi sponsor.