setlocale - Fixe la localisation courante.
La fonction
setlocale()
est utilisée pour indiquer ou demander la localisation courante du programme.
Si
locale
n'est pas
NULL,
la localisation courante du programme est modifiée en fonction des arguments.
L'argument
categorie
détermine quelle partie de la localisation sera concernée par la modification :
- LC_ALL
-
toute la localisation,
- LC_COLLATE
-
la mise en correspondance des expressions rationnelles (classes d'équivalence
et intervalles), et le classement des chaînes de caractères,
- LC_CTYPE
-
la classification de caractère, et les routines de conversions.
- LC_MESSAGES
-
les messages en langue naturelle
- LC_MONETARY
-
l'affichage des valeurs monétaires.
- LC_NUMERIC
-
le symbole décimal (point, virgule, ...)
- LC_TIME
-
la forme de la date et l'heure.
L'argument
locale
est un pointeur sur une chaîne de caractères contenant la configuration de la
categorie.
Une telle chaîne peut être une constante bien connue, comme "C" ou "fr_FR"
(voir plus bas) ou une chaîne opaque renvoyée par un autre appel précédent
setlocale.
Si
locale
est
,
chaque partie de la localisation doit être modifiée en fonction des variables
d'environnement. Les détails d'implémentation varient.
Pour la GlibC, d'abord
(quelque soit la
catégorie)
la variable d'environnement LC_ALL est examinée, puis la variable
d'environnement avec le même nom que la catégorie (LC_COLLATE, LC_CTYPE,
LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) et finalement la variable
LANG.
La première variable d'environnement existant est utilisée. Si sa valeur
est n'est pas une spécification de localication valide, la localisation n'est
pas modifiée, et
setlocale
renvoie NULL.
Les localisations
C
et
POSIX
sont portables, leur partie LC_CTYPE correspond au jeu de caractères ASCII
7 bits.
Un nom de localisation est typiquement de la forme
langue[_
territoire][.
codeset][@
modificateur],
où la
langue
est un code linguistique ISO 639, le
territoire
un code de pays ISO 3166, et
codeset
un jeu de caractères ou un identificateur d'encodage, comme
ISO-8859-1
ou
UTF-8.
Pour voir une liste de toutes les localisations disponibles, essayez
"locale -a", cf.
locale(1).
Si
locale
est
NULL,
la localisation courante est consultée, mais pas modifiée.
Au démarrage, la localisation portable
C
est sélectionnée par défaut.
Un programme peut être rendu portable en appelant
setlocale(LC_ALL, )
lors de son initialisation, en utilisant les valeurs renvoyées par
localeconv()
pour les valeurs dépendant de la localisation, en utilisation les fonctions
multioctets et caractères larges pour traiter les chaines si
MB_CUR_MAX > 1,
et en utilisant
strcoll(),
wcscoll()
ou
strxfrm(),
wcsxfrm()
pour comparer les chaînes de caractères.
Christophe Blaess, 1996-2003.