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_ADDRESS (extension GNU extension, depuis la glibc 2.2)
    Modifier les réglages décrivant les formats (comme les adresses postales) utilisés pour décrire les éléments relatifs aux emplacements et à la géographie. Les applications ayant besoin de ces renseignements peuvent utiliser nl_langinfo(3) pour récupérer les éléments non normalisés comme _NL_ADDRESS_COUNTRY_NAME (nom de pays, dans la langue des paramètres régionaux) ou _NL_ADDRESS_LANG_NAME (nom de langue, dans la langue des paramètres régionaux), qui renvoient des chaînes comme « France » ou « français » (pour des paramètres régionaux relatif à la France). (D’autres noms d’éléments sont dans <langinfo.h>.)

LC_COLLATE
    Cette catégorie définit les règles d’assemblage utilisées pour le tri et les expressions rationnelles, y compris les classes d’équivalence de caractères et les éléments d’assemblage multicaractères. Cette catégorie de paramètres régionaux modifie 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
    This category determines the interpretation of byte sequences as characters (e.g., single versus multibyte characters), character classifications (e.g., alphabetic or digit), and the behavior of character classes. On glibc systems, this category also determines the character transliteration rules for iconv(1) and iconv(3). It changes the behavior of the character handling and classification functions, such as isupper(3) and toupper(3), and the multibyte character functions such as mblen(3) or wctomb(3).

LC_IDENTIFICATION (extension GNU, depuis la glibc 2.2)
    Modifier les réglages relatifs aux métadonnées pour les paramètres régionaux. Les applications ayant besoin de ces renseignements peuvent utiliser nl_langinfo(3) pour récupérer les éléments non normalisés comme _NL_IDENTIFICATION_TITLE (titre de ce document de paramètres régionaux) ou _NL_IDENTIFICATION_TERRITORY (territoire géographique auquel de document de paramètres régionaux s’applique), qui pourraient renvoyer des chaînes comme « paramètres régionaux français pour la France » ou « France ». (D’autres noms d’éléments sont dans <langinfo.h>.)

LC_MONETARY
    Cette catégorie définit les règles de mise en forme utilisées pour les valeurs numériques monétaires. Elle modifie l'information renvoyée par localeconv(3), qui décrit 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
    Cette catégorie modifie la langue utilisée pour afficher les messages et la saisie de réponses affirmatives ou négatives. La bibliothèque C de 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 ». Cette catégorie modifie aussi le comportement de catopen(3).

LC_MEASUREMENT (extension GNU, depuis la glibc 2.2)
    Modifier les réglages relatifs au système utilisé pour les mesures avec les paramètres régionaux (c’est-à-dire le système métrique ou les unités de mesure américaines). Les applications peuvent utiliser nl_langinfo(3) pour récupérer les éléments non normalisés comme l’élément _NL_MEASUREMENT_MEASUREMENT, qui renvoie un pointeur vers un caractère qui vaut 1 (système métrique) ou 2 (unités de mesure américaines).

LC_NAME (extension GNU, depuis la glibc 2.2)
    Modifier les réglages décrivant les formats utilisés pour s’adresser aux personnes. Les applications ayant besoin de ces renseignements peuvent utiliser nl_langinfo(3) pour récupérer les éléments non normalisés comme _NL_NAME_NAME_MR (titre pour les hommes) ou _NL_NAME_NAME_MS (titre pour les femmes), qui renvoient des chaînes comme « monsieur » ou « madame » (pour des paramètres régionaux relatif au français). (D’autres noms d’éléments sont dans <langinfo.h>.)

LC_NUMERIC
    Cette catégorie définit les règles de mise en forme utilisées pour les valeurs numériques non monétaires —par exemple, le séparateur de milliers, ou le séparateur décimal (un point dans la plupart des pays anglophones, mais une virgule dans beaucoup d'autres régions). Elle modifie les fonctions telles que printf(3), scanf(3) et strtod(3). Cette information peut aussi être lue avec la fonction localeconv(3).

LC_PAPER (extension GNU, depuis la glibc 2.2)
    Modifier les réglages relatifs aux dimensions de la taille normalisée de papier (c’est-à-dire A4 ou US Letter). Les applications ayant besoin des dimensions peuvent les obtenir en utilisant nl_langinfo(3) pour récupérer les éléments _NL_PAPER_WIDTH et _NL_PAPER_HEIGHT non normalisés, qui renvoient des valeurs int indiquant les dimensions en millimètre.

LC_TELEPHONE (extension GNU, depuis la glibc 2.2)
    Modifier les réglages décrivant les formats à utiliser avec les services téléphoniques. Les applications ayant besoin de ces renseignements peuvent utiliser nl_langinfo(3) pour récupérer les éléments non normalisés comme _NL_TELEPHONE_INT_PREFIX (préfixe international utilisé pour appeler les numéros dans ces paramètres régionaux), qui renvoie une chaîne comme « 33 » (pour la France). (D’autres noms d’éléments sont dans <langinfo.h>.)

LC_TIME
    Cette catégorie définit les règles de mise en forme utilisées pour les valeurs d'heure et de date. Par exemple, la plupart des pays européens utilisent une horloge de 24h, alors que les États-Unis utilisent une horloge de 12h. Les paramètres de cette catégorie modifient les fonctions telles que strftime(3) et strptime(3).

LC_ALL
    Toutes les catégories ci-dessus.

If the second argument to setlocale(3) is an empty string, "", for the default locale, it is determined using the following steps:

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;     /* Radix character */
        char *thousands_sep;     /* Separator for digit groups to left
                                    of radix character */
        char *grouping;     /* Each element is the number of digits in
                               a group; elements with higher indices
                               are further left.  An element with value
                               CHAR_MAX means that no further grouping
                               is done.  An element with value 0 means
                               that the previous element is used for
                               all groups further left. */
        /* Les champs restants sont pour les informations monétaires */
        char *int_curr_symbol;   /* First three chars are a currency
                                    symbol from ISO 4217.  Fourth char
                                    is the separator.  Fifth char
                                    is '\0'. */
        char *currency_symbol;   /* Local currency symbol */
        char *mon_decimal_point; /* Radix character */
        char *mon_thousands_sep; /* Like thousands_sep above */
        char *mon_grouping;      /* Like grouping above */
        char *positive_sign;     /* Sign for positive values */
        char *negative_sign;     /* Sign for negative values */
        char  int_frac_digits;   /* International fractional digits */
        char  frac_digits;       /* Local fractional digits */
        char  p_cs_precedes;     /* 1 if currency_symbol precedes a
                                    positive value, 0 if succeeds */
        char  p_sep_by_space;    /* 1 if a space separates
                                    currency_symbol from a positive
                                    value */
        char  n_cs_precedes;     /* 1 if currency_symbol precedes a
                                    negative value, 0 if succeeds */
        char  n_sep_by_space;    /* 1 if a space separates
                                    currency_symbol from a negative
                                    value */
        /* Positive and negative sign positions:
           0 Parentheses surround the quantity and currency_symbol.
           1 The sign string precedes the quantity and currency_symbol.
           2 The sign string succeeds the quantity and currency_symbol.
           3 The sign string immediately precedes the currency_symbol.
           4 The sign string immediately succeeds the currency_symbol. */
        char  p_sign_posn;
        char  n_sign_posn;
    };

  Extensions POSIX.1-2008 à l’interface de programmation de paramètres régionaux.
POSIX.1-2008 a normalisé de nombreuses extensions à l’interface de programmation de paramètres régionaux, à partir des implémentations qui sont d’abord apparues dans la version 2.3 de la bibliothèque C de GNU. Ces extensions sont conçues pour apporter une solution au problème des interfaces de programmation traditionnelles de paramètres régionaux qui s’intègrent mal aux applications en contexte multithread et aux applications devant gérer plusieurs paramètres régionaux différents.

Les extensions prennent la forme de nouvelles fonctions pour créer et manipuler les objets de paramètres régionaux (newlocale(3), freelocale(3), duplocale(3) et uselocale(3)) et plusieurs nouvelles bibliothèques avec le suffixe « _l » (par exemple toupper_l(3)) qui complètent les interfaces de programmation traditionnelles dépendant des paramètres régionaux (par exemple toupper(3)) pour permettre d’indiquer un objet de paramètres régionaux qui devrait être pris en compte lors de l’exécution de la fonction.

ENVIRONNEMENT
The following environment variable is used by newlocale(3) and setlocale(3), and thus affects all unprivileged localized programs:

LOCPATH
    A list of pathnames, separated by colons (':'), that should be used to find locale data. If this variable is set, only the individual compiled locale data files from LOCPATH and the system default locale data path are used; any available locale archives are not used (see localedef(1)). The individual compiled locale data files are searched for under subdirectories which depend on the currently used locale. For example, when en_GB.UTF-8 is used for a category, the following subdirectories are searched for, in this order: en_GB.UTF-8, en_GB.utf8, en_GB, en.UTF-8, en.utf8, and en.

FICHIERS

/usr/lib/locale/locale-archive
    Chemin habituel par défaut de l'archive des paramètres régionaux.

/usr/lib/locale
    Usual default path for compiled individual locale files.

CONFORMITÉ
POSIX.1-2001.

VOIR AUSSI
iconv(1), locale(1), localedef(1), catopen(3), gettext(3), iconv(3), localeconv(3), mbstowcs(3), newlocale(3), ngettext(3), nl_langinfo(3), rpmatch(3), setlocale(3), strcoll(3), strfmon(3), strftime(3), strxfrm(3), uselocale(3), wcstombs(3), locale(5), charsets(7), unicode(7), utf-8(7)

COLOPHON
Cette page fait partie de la publication 5.08 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org> 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 à <debian-l10n-french@lists.debian.org>.