locale
Table des matières
Retour à l'index
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. Cela 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 régionalisation désirée :
- LC_ADDRESS (extension GNU, depuis la glibc 2.2)
-
Modification des réglages décrivant les formats (comme les adresses
postales) utilisés pour décrire les régionalisations et les éléments
relatifs à 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 relatifs à
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
régional. Par exemple, le eszett allemand est ordonné comme « ss ».
- LC_CTYPE
-
Cette catégorie définit l’interprétation des séquences d’octets comme des
caractères (par exemple, caractères simples ou multioctets), classifications
de caractères (par exemple, alphabétique ou numérique) et le comportement
des classes de caractères. Sur les systèmes utilisant la glibc, cette
catégorie détermine aussi les règles de translittération pour iconv(1) et
iconv(3). Elle modifie le comportement des fonctions de manipulation et
de 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_IDENTIFICATION (extension GNU, depuis la glibc 2.2)
-
Modification des 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 du document actuel de paramètres
régionaux) ou _NL_IDENTIFICATION_TERRITORY (territoire géographique
auquel ce 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 paramètres régionaux séparés par des deux-points) si la
catégorie désigne un ensemble de paramètres régionaux valable autre que
« C ». Cette catégorie modifie aussi le comportement de catopen(3).
- LC_MEASUREMENT (extension GNU, depuis la glibc 2.2)
-
Modification des 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)
-
Modification des 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 relatifs 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)
-
Modification des 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)
-
Modification des réglages décrivant les formats à utiliser pour 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 selon les 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 24 h, alors que les États-Unis utilisent une
horloge de 12 h. 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.
Si le second argument de la fonction setlocale(3) est une chaîne de
caractères vide, "", les paramètres régionaux par défaut sont
déterminés selon les étapes suivantes :
- (1)
-
Si la variable d'environnement LC_ALL n'est pas NULL, sa valeur est
utilisée.
- (2)
-
Si une variable d'environnement ayant le même nom que les catégories
mentionnées ci-dessus n’est pas NULL, sa valeur est utilisée pour la
catégorie en question.
- (3)
-
Si la variable d'environnement LANG n’est pas NULL, 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 regroupement 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 sont
un symbole monétaire ISO 4217.
Le quatrième est le séparateur,
le cinquième vaut « \0 ».
char *currency_symbol; /* Symbole monétaire régional */
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 internationaux. */
char frac_digits; /* Chiffres fractionnaires régionaux */
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;
};
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 glibc 2.3. 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), 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
La variable d'environnement suivante est utilisée par newlocale(3) et
setlocale(3) et modifie donc tous les programmes régionalisés sans
permission particulière :
- LOCPATH
-
Une liste de chemins, séparés par des deux-points (« : »), qui doivent être
parcourus pour chercher des données de paramètres régionaux. Si cette
variable est positionnée, seuls les fichiers particuliers de données de
paramètres régionaux se trouvant dans LOCPATH et le chemin de paramètres
régionaux par défaut du système sont utilisés ; les archives de paramètres
régionaux existantes sont ignorées (consulter localedef(1)). Les fichiers
particuliers compilés de données de paramètres régionaux sont cherchés dans
des sous-répertoires qui dépendent des paramètres régionaux en cours. Par
exemple, si en_GB.UTF-8 est utilisé pour une catégorie, les répertoires
suivants seront parcourus dans cette ordre : en_GB.UTF-8, en_GB.utf8,
en_GB, en.UTF-8, en.utf8 et en.
FICHIERS
- /usr/lib/locale/locale-archive
-
Chemin habituel par défaut de l'archive des paramètres régionaux.
- /usr/lib/locale
-
Chemin par défaut habituel des fichiers compilés particuliers de paramètres
régionaux.
STANDARDS
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)
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>,
David Prévot <david@tilapin.org>
et
Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
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 à
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- Extensions POSIX.1-2008 à l’interface de programmation de paramètres régionaux.
-
- ENVIRONNEMENT
-
- FICHIERS
-
- STANDARDS
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:38 GMT, September 19, 2025