LOCALE(7) Manuel de l'administrateur Linux LOCALE(7)
NAME
locale - Description du support multi-langages.
SYNOPSIS
#include <locale.h>
DESCRIPTION
Une localisation est un ensemble de règles linguistiques
et culturelles. Ceci couvre des aspects tels que la
langue utilisée pour les messages, le jeu de caractères,
les conventions lexicographiques etc... Un programme doit
être capable de déterminer sa localisation et d'agir en
conséquence pour être portable dans divers environnements
culturels.
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 qu'il déclare sont setlocale() pour indiquer
la localisation et localeconv() pour obtenir des informa
tions sur la mise en forme des nombres.
Il existe différentes catégories d'informations locales
qui peuvent être utiles à un programme. Elles sont
déclarées en tant que macros. En les utilisant comme pre
mier argument de la fonction setlocale(), il devient pos
sible de fixer l'une de ces informations :
LC_COLLATE
est utilisé pour modifier le comportement des fonc
tions strcoll() et strxfrm(), qui permettent les
comparaisons de chaînes dans l'alphabet local. Par
exemple le double-s allemand, est ordonné comme
'ss'.
LC_TYPE
permet de modifier les manipulations et classifica
tions de caractères, comme celles des fonctions
isupper() et toupper(), et celles des fonctions
travaillant sur des caractères multi-octets comme
mblen() ou wctomb().
LC_MONETARY
modifie les informations renvoyées par localeconv()
pour décrire la mise en forme habituelle des nom
bres, en accord avec des détails comme le point
décimal ou la virgule décimale. Ces informations
sont utilisées par les fonctions strfmon().
LC_MESSAGES
configure la langue utilisée pour afficher les mes
sages, et la saisie de réponses affirmatives ou
négatives. La bibliothèque C GNU contient la
Linux 20 Octobre 1996 1
LOCALE(7) Manuel de l'administrateur Linux LOCALE(7)
fonction rpmatch() pour aider à utiliser ces
données.
LC_NUMERIC
modifie les informations utilisées par les fonc
tions des familles printf() et scanf(),
lorsqu'elles doivent utiliser la configuration
locale. Ces données peuvent également être obtenues
avec la fonction localeconv().
LC_TIME
modifie le comportement de la fonction strftime()
affichant l'heure dans un format local. Par exemple
la plupart de l'Europe utilise un format horaire
sur 24 heures, alors que les USA utilisent un for
mat sur 12 heures.
LC_ALL regroupe toutes les catégories ci-dessus.
Si le second argument de la fonction setlocale() est une
chaîne de caractères vide, "", ceci correspond à la local
isation par défaut, déterminée avec les étapes suivantes :
1. Si une 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 une 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 struct lconv, renvoyée par
la fonction localeconv(), déclarée ainsi :
struct lconv
{
/* -------- Informations numériques (non-monétaires) ------- */
char *decimal_point; /* Séparateur décimal */
char *thousands_sep; /* Séparateur des milliers */
/*
* Chaque élément indique un nombre de chiffres dans chaque
* groupe.
* Les éléments d'indice les plus élévés correspondent aux grou-
* pes les plus à gauche.
* Un élément de valeur CHAR_MAX signifie l'arrêt du groupement.
* Un élément de valeur 0 signifie que l'élément précédent est
* utilisé pour tous les groupes plus à gauche.
*
* NDT : c'est pas clair ? ben, la V.O. non plus ! ;-)
*/
Linux 20 Octobre 1996 2
LOCALE(7) Manuel de l'administrateur Linux LOCALE(7)
char *grouping;
/* ----------------- Informations monétaires ---------------- */
/* Les trois premiers caractères correspondent au symbole */
/* monétaire d'après ISO 4217. Le quatrième symbole est le */
/* séparateur, le cinquième est '\0'. */
char *int_curr_symbol;
char *currency_symbol; /* Symbole monétaire local. */
char *mon_decimal_point; /* Caractère séparateur décimal */
char *mon_thousands_sep; /* Caract. séparateur milliers */
char *mon_grouping; /* Comme 'grouping' (ci-dessus) */
char *positive_sign; /* Signe pour valeurs positives */
char *negative_sign; /* Signe pour valeurs négatives */
char int_frac_digits; /* Int'l fractional digits. */
char frac_digits; /* Local fractional digits. */
/* 1 : le symbole monétaire précède les valeurs positives, */
/* 0 : le symbole monétaire suit les valeurs positives. */
char p_cs_precedes;
/* 1 si un espace sépare le symbole monétaire d'une valeur + */
char p_sep_by_space;
/* 1 : le symbole monétaire précède les valeurs négatives, */
/* 0 : le symbole monétaire suit les valeurs négatives. */
char n_cs_precedes;
/* 1 si un espace sépare le symbole monétaire d'une valeur - */
char n_sep_by_space;
/* Positions des signes plus et moins :
* 0 Parenthèses autour de la valeur et du symbole monétaire.
* 1 Le signe précède la valeur et le symbole monétaire.
* 2 Le signe suit la valeur et le symbole monétaire.
* 3 Le signe précède immédiatement le symbole monétaire.
* 4 Le signe suit immédiatement le symbole monétaire.
*/
char p_sign_posn;
char n_sign_posn;
};
CONFORMITÉ
POSIX.1
VOIR AUSI
setlocale(3), localeconv(3), locale(1), localedef(1),
rpmatch(3), strfmon(3), strcoll(3), strxfrm(3), strf
time(3)
TRADUCTION
Christophe Blaess, 1997.
Linux 20 Octobre 1996 3