LOCALE(7)

NOM
locale - Description de la gestion multilingue

SYNOPSIS
#include <locale.h>

DESCRIPTION
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 caractè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 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 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 peuvent être utiles à un programme. Elles sont déclarées en tant que macros. En les utilisant comme premier argument de la fonction setlocale(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 strcoll(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 toupper(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 variable d'environnement LANGUAGE (contenant une liste de locales séparées par des deux-points) si la catégorie est une locale valable autre que « C ».

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 peuvent é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;
};

CONFORMITÉ
POSIX.1-2001. Les fonctions de la bibliothèque GNU gettext sont décrites dans le document LI18NUX2000.

VOIR AUSSI
locale(1), localedef(1), gettext(3), localeconv(3), ngettext(3), nl_langinfo(3), rpmatch(3), setlocale(3), strcoll(3), strfmon(3), strftime(3), strxfrm(3)

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

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

Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien Cristau 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> ».