SETLOCALE(3)

NOM
setlocale - Définir la localisation courante

SYNOPSIS
#include <locale.h>

char *setlocale(int categorie, const char *locale);

DESCRIPTION
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.
Catégorie | Modifie
LC_ALL | Toute la localisation
LC_ADDRESS | Mise en forme des adresses et des notions relatives à la géographie (*)
LC_COLLATE | Assemblage de 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 ou unités de mesure américaines) (*)
LC_MESSAGES | Messages en langue naturelle
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 à la taille 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 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 une chaîne vide (""), 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 (quelle que soit la categorie) la variable d'environnement LC_ALL est examinée, puis la variable d'environnement avec le même nom que la catégorie (consultez la table ci-dessus) et finalement la variable LANG. La première variable d'environnement existant est utilisée. Si sa valeur n'est pas une spécification de localisation 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 identifiant 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(3) pour les valeurs dépendant de la localisation, en utilisant les fonctions multioctets et caractères larges pour traiter les chaînes si MB_CUR_MAX > 1, et en utilisant strcoll(3), wcscoll(3) ou strxfrm(3), wcsxfrm(3) pour comparer les chaînes de caractères.

VALEUR RENVOYÉE
Un appel réussi à setlocale() renvoie une chaîne correspondant à la localisation. Cette chaîne peut être allouée dans une zone statique. La chaîne est renvoyée de telle manière qu'un appel ultérieur avec cette chaîne et la catégorie associée restituera cette partie de la localisation du processus. La valeur renvoyée est NULL si la demande ne peut pas être honorée.

CONFORMITÉ
C89, C99, POSIX.1-2001.

VOIR AUSSI
locale(1), localedef(1), isalpha(3), localeconv(3), nl_langinfo(3), rpmatch(3), strcoll(3), strftime(3), charsets(7), locale(7)

COLOPHON
Cette page fait partie de la publication 3.70 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».