LOCALE(7) Manuel du programmeur Linux LOCALE(7)
locale - Description de la gestion multilingue
#include <locale.h>
Les paramètres régionaux (ou locale, en anglais) constituent un
ensemble de règles linguistiques et culturelles. Ceci couvre des
aspects tels que la langue utilisée pour les messages, le jeu de car‐
actères, les conventions lexicographiques, etc. Un programme doit
être capable de déterminer les paramètres de l’utilisateur et d’agir
en conséquence pour être portable dans divers environnements cul‐
turels.
Le fichier d’en-tête <locale.h> déclare les types de données, les
fonctions et les macros utilisés pour ces tâches.
Les fonctions déclarées sont setlocale(3) pour définir les
paramètres actuels et localeconv(3) pour obtenir des informations sur
la mise en forme des nombres.
Il existe différentes catégories de paramètres régionaux qui peu‐
vent être utiles à un programme. Elles sont déclarées en tant que
macros. En les utilisant comme premier argument de la fonction setlo‐
cale(3), il devient possible de définir l’une de ces catégories à la
locale désirée :
LC_COLLATE
est utilisée pour modifier le comportement des fonctions str‐
coll(3) et strxfrm(3), qui permettent les comparaisons de
chaînes dans l’alphabet local. Par exemple, le eszett allemand
est ordonné comme « ss ».
LC_CTYPE
permet de modifier le comportement des fonctions de manipulation
et classification de caractères, telles que isupper(3) et toup‐
per(3), et celui des fonctions travaillant sur des caractères
multioctets comme mblen(3) ou wctomb(3).
LC_MONETARY
modifie les informations renvoyées par localeconv(3) pour
décrire la mise en forme habituelle des nombres, en accord avec
des détails comme le point décimal ou la virgule décimale.
Ces informations sont utilisées en interne par la fonction
strfmon(3).
LC_MESSAGES
configure la langue utilisée pour afficher les messages, et la
saisie de réponses affirmatives ou négatives. La bibliothèque
C GNU contient les fonctions gettext(3), ngettext(3) et
rpmatch(3) pour faciliter l’utilisation de ces données. Les
fonctions de la famille GNU gettext obéissent aussi à la vari‐
able d’environnement LANGUAGE.
LC_NUMERIC
modifie les informations utilisées par les fonctions des
familles printf(3) et scanf(3), lorsqu’elles doivent respecter
les paramètres régionaux de l’utilisateur. Ces données peu‐
vent également être obtenues avec la fonction localeconv(3).
LC_TIME
modifie le comportement de la fonction strftime(3) pour afficher
l’heure dans un format adéquat. Par exemple, la plupart des
pays d’Europe utilisent un format horaire sur 24 heures, alors
que les Ãtats-Unis utilisent un format sur 12 heures.
LC_ALL regroupe toutes les catégories ci-dessus.
Si le second argument de la fonction setlocale(3) est une chaîne de
caractères vide, "", la locale par défaut est déterminée selon les
étapes suivantes :
1. Si la variable d’environnement LC_ALL n’est pas nulle, sa valeur
est utilisée.
2. Si une variable d’environnement ayant le même nom que les
catégories mentionnées ci-dessus est non nulle, sa valeur est
utilisée pour la catégorie en question.
3. Si la variable d’environnement LANG est non nulle, sa valeur est
utilisée.
Les valeurs concernant la mise en forme numérique sont disponibles
dans une structure lconv renvoyée par la fonction localeconv(3),
déclarée de la manière suivante :
struct lconv {
/* Informations numériques (non monétaires) */
char *decimal_point; /* Séparateur décimal */
char *thousands_sep; /* Séparateur des milliers */
char *grouping; /* Chaque élément représente le nombre de
chiffres dans un groupe ; les éléments avec
les indices les plus hauts sont placés à gauche.
Un élément ayant la valeur CHAR_MAX signifie
qu’aucun regroupage ne peut plus être fait.
Un élément avec la valeur 0 signifie que
l’élément précédent est utilisé pour tous les
groupes restant à gauche. */
/* Les champs restants sont pour les informations monétaires */
char *int_curr_symbol; /* Les trois premiers caractères
correspondent au symbol monétaire
ISO 4217. Le quatrième est le
séparateur, le cinquième vaut « ». */
char *currency_symbol; /* Symbole monétaire local */
char *mon_decimal_point; /* Séparateur décimal */
char *mon_thousands_sep; /* Identique à thousands_sep ci-dessus */
char *mon_grouping; /* Identique à grouping ci-dessus */
char *positive_sign; /* Signe des valeurs positives */
char *negative_sign; /* Signe des valeurs négatives */
char int_frac_digits; /* Chiffres fractionnaires internat. */
char frac_digits; /* Chiffres fractionnaires locaux */
char p_cs_precedes; /* 1 si currency_symbol précède une
valeur positive, 0 s’il la suit */
char p_sep_by_space; /* 1 si une espace sépare currency_symbol
d’une valeur positive */
char n_cs_precedes; /* 1 si currency_symbol précède une
valeur négative, 0 s’il la suit */
char n_sep_by_space; /* 1 si une espace sépare currency_symbol
d’une valeur négative */
/* Positions des signes positifs et négatifs :
0 Parenthèses entourant la quantité et currency_symbol.
1 Le signe précède la quantité et currency_symbol.
2 Le signe suit la quantité et currency_symbol.
3 Le signe précède immédiatement currency_symbol.
4 Le signe suit immédiatement currency_symbol. */
char p_sign_posn;
char n_sign_posn;
};
POSIX.1-2001.
Les fonctions de la bibliothèque GNU gettext sont décrites dans le
document LI18NUX2000.
locale(1), localedef(1), gettext(3), localeconv(3), ngettext(3),
nl_langinfo(3), rpmatch(3), setlocale(3), strcoll(3), strfmon(3), strf‐
time(3), strxfrm(3)
Cette page fait partie de la publication 3.07 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse http://www.ker‐
nel.org/doc/man-pages/.
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise Ã
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian
sont directement gérées par Julien Cristau <jcristau [AT] debian.org> et
l’équipe francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant Ã
<debian-l10n-french [AT] lists.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».
Linux 24 avril 1993 LOCALE(7)