setlocale - Définir les paramètres régionaux courants
Bibliothèque C standard (
libc,
-lc)
#include <locale.h>
char *setlocale(int catégorie, const char *locale);
La fonction
setlocale() permet de définir ou d'obtenir les
paramètres régionaux courants du programme.
Si
locale n'est pas NULL, les paramètres régionaux courants
du programme sont modifiés en fonction des arguments. L'argument
catégorie détermine quelle partie des paramètres
régionaux courants du programme seront concernés par la
modification.
Catégorie |
Paramètres impactés |
LC_ALL |
Tous les paramètres régionaux |
LC_ADDRESS |
Mise en forme des adresses et des items relatifs à la
géographie (*) |
LC_COLLATE |
Ordre de tri des chaînes |
LC_CTYPE |
Classification des caractères |
LC_IDENTIFICATION |
Métadonnées décrivant les paramètres
régionaux (*) |
LC_MEASUREMENT |
Paramètres liés aux mesures (système
métrique et mesures US) (*) |
LC_MESSAGES |
Messages localisables en langue d'origine |
LC_MONETARY |
Mise en forme des valeurs monétaires |
LC_NAME |
Mise en forme des titres pour les personnes (*) |
LC_NUMERIC |
Mise en forme des valeurs numériques non monétaires |
LC_PAPER |
Paramètres liés au format de papier standard (*) |
LC_TELEPHONE |
Formats à utiliser pour les services de téléphonie
(*) |
LC_TIME |
Mise en forme des valeurs de date et heure |
Les catégories avec une astérisque dans la table ci-dessus sont
des extensions GNU. Pour plus d'informations sur ces catégories de
paramètres régionaux, consultez
locale(7).
L'argument
locale est un pointeur sur une chaîne de
caractères indiquant la configuration de la
catégorie.
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 la chaîne vide (
""), chaque partie
des paramètres régionaux doit être modifiée en
fonction des variables d'environnement. Les détails varient en fonction
de l'implémentation. Pour la glibc, (quelle que soit la
catégorie) la variable d'environnement
LC_ALL est
examinée dans un premier temps, puis c'est au tour de la variable
d'environnement possédant le même nom que la catégorie
(consultez la table ci-dessus) et c'est enfin celui de la variable
LANG. C'est la première variable d'environnement définie
qui est prise en compte. Si sa valeur n'est pas une spécification de
paramètres régionaux valable, les paramètres
régionaux courants ne sont pas modifiés, et
setlocale()
renvoie NULL.
Les paramètres régionaux
« C »
et
« POSIX » sont portables et ils existent
sur tous les systèmes compatibles.
Un nom de paramètres régionaux est typiquement de la forme
langue[_
territoire][.
codage][@
modificateur],
où
langue est un code linguistique ISO 639,
territoire un code de pays ISO 3166 et
codage un jeu de
caractères ou un identifiant d'encodage comme
ISO-8859-1 ou
UTF-8. Pour obtenir la liste de tous les paramètres
régionaux disponibles, utilisez la commande « locale
-a » (voir
locale(1)).
Si
locale est NULL, les paramètres régionaux courants sont
consultés, mais pas modifiés.
Au démarrage du programme principal, la valeur de paramètres
régionaux portable
« C » est
sélectionnée par défaut. Un programme peut être
rendu portable pour tous les paramètres régionaux en
appelant :
setlocale(LC_ALL, "");
après l'initialisation du programme, puis :
- •
- en utilisant les valeurs renvoyées par un appel
à localeconv(3) pour obtenir des informations
dépendant des paramètres régionaux ;
- •
- en utilisant les fonctions de traitement des textes avec
caractères larges ou multioctets si MB_CUR_MAX >
1 ;
- •
- en utilisant strcoll(3) et strxfrm(3) pour
comparer les chaînes ; et
- •
- en utilisant wcscoll(3) et wcsxfrm(3) pour
comparer les chaînes à caractères larges.
Un appel réussi à
setlocale() renvoie une chaîne
opaque correspondant aux paramètres régionaux. Cette
chaîne peut être allouée statiquement. La chaîne
renvoyée associée à la catégorie
considérée permet (à l'aide d'un appel ultérieur
à
setlocale()) de restituer la partie correspondante des
paramètres régionaux du processus. La valeur renvoyée est
NULL si la demande ne peut pas aboutir.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
setlocale() |
Sécurité des threads |
MT-Unsafe const:locale env |
POSIX.1-2001, POSIX.1-2008, C99.
Les normes C ne spécifient que les catégories
LC_ALL,
LC_COLLATE,
LC_CTYPE,
LC_MONETARY,
LC_NUMERIC et
LC_TIME. POSIX.1 y ajoute
LC_MESSAGES. Les
autres catégories sont des extensions GNU.
locale(1),
localedef(1),
isalpha(3),
localeconv(3),
nl_langinfo(3),
rpmatch(3),
strcoll(3),
strftime(3),
charsets(7),
locale(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Lucien Gentis <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]