nl_langinfo, nl_langinfo_l - Demande d'informations sur la langue et les
paramètres régionaux
Bibliothèque C standard (
libc,
-lc)
#include <langinfo.h>
char *nl_langinfo(nl_item item);
char *nl_langinfo_l(nl_item item, locale_t locale);
nl_langinfo_l() :
Since glibc 2.24:
_POSIX_C_SOURCE >= 200809L
glibc 2.23 and earlier:
_POSIX_C_SOURCE >= 200112L
The
nl_langinfo() and
nl_langinfo_l() functions provide access to
locale information in a more flexible way than
localeconv(3).
nl_langinfo() returns a string which is the value corresponding to
item in the program's current global locale.
nl_langinfo_l()
returns a string which is the value corresponding to
item for the
locale identified by the locale object
locale, which was previously
created by
newlocale(3). Individual and additional elements of the
locale categories can be queried.
setlocale(3) needs to be executed
with proper arguments before.
Voici des exemples d'éléments de paramètres
régionaux qui peuvent être spécifiés à
l'aide de
item en utilisant les constantes définies dans
<langinfo.h> :
-
CODESET (LC_CTYPE)
- Renvoyer une chaîne contenant le nom du codage de
caractères utilisé dans les paramètres
régionaux sélectionnés, par exemple
« UTF-8 »,
« ISO-8859-1 » ou
« ANSI_X3.4-1968 » (mieux connu sous le nom
US-ASCII). Il s'agit de la même chaîne que celle obtenue
avec « locale charmap ». Pour une liste des
noms de codage de caractères, essayez « locale
-m », cf. locale(1).
-
D_T_FMT (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter l'heure et la date de
façon spécifique aux paramètres régionaux
(spécification de conversion %c).
-
D_FMT (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter la date de façon
spécifique aux paramètres régionaux
(spécification de conversion %x).
-
T_FMT (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter l'heure de façon
spécifique à la localisation (spécification de
conversion %X).
-
AM_STR (LC_TIME)
- Renvoyer une chaîne qui représente un affixe
pour les heures "ante meridiem" (avant midi, "AM") -
Utilisé dans la spécification de conversion %p de
strftime(3).
-
PM_STR (LC_TIME)
- Renvoyer une chaîne qui représente un affixe
pour les heures "post meridiem" (après midi,
"PM") - utilisé dans la spécification de
conversion %p de strftime(3).
-
T_FMT_AMPM (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter une heure selon la notation
a.m. ou p.m. de façon spécifique aux paramètres
régionaux (spécification de conversion %r).
-
ERA (LC_TIME)
- Renvoyer la description d'une ère qui contiendra des
informations sur la manière dont les années sont
comptées et affichées pour chaque ère de certains
paramètres régionaux. Chaque segment de description de
l'ère doit être au format :
-
direction:décalage:date_début:date_fin:nom_ère:format_ère
- dont les champs sont décrits
ci-dessous :
- direction
- Le caractère "+" ou
"-". Le caractère " +" signifie
que les années augmentent de date-début
jusqu'à date_fin, alors que le caractère "
-" signifie l'opposé.
- décalage
- L'année epoch de date-début.
- date_début
- Une date au format aaaa/mm/jj
où aaaa, mm et jj correspondent respectivement
à l'année, au mois et au jour du début de
l'ère considérée.
- date_fin
- La date de fin de l'ère considérée au
même format que date_début, ou une des deux valeurs
spéciales " -*" (moins l'infini) ou "
+*" (plus l'infini).
- nom_ère
- Le nom de l'ère considérée
correspondant à la spécification de conversion %EC de
strftime(3).
- format_ère
- Le format de l'année de l'ère
considérée correspondant à la spécification de
conversion %EY de strftime(3).
- Les segments de description d'ères sont
séparés par des points-virgules. Les paramètres
régionaux japonais et thaï définissent cette valeur,
mais la plupart des autres paramètres régionaux ne le font
pas.
-
ERA_D_T_FMT (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter l'heure de façon
spécifique à la localisation (spécification de
conversion %Ec).
-
ERA_D_FMT (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter l'heure de façon
spécifique à la localisation.
-
ERA_T_FMT (LC_TIME)
- Renvoyer une chaîne qui peut être
utilisée en tant que chaîne de format pour
strftime(3) afin de représenter l'heure de façon
spécifique à la localisation.
-
DAY_{1–7} (LC_TIME)
- Renvoyer le nom du n-ième jour de la semaine.
[Attention : cela suit la convention américaine stipulant
que DAY_1 = dimanche, et pas la convention internationale
(ISO 8601) spécifiant que lundi est le premier jour de la
semaine]
-
ABDAY_{1–7} (LC_TIME)
- Renvoyer le nom abrégé du
n-ième jour de la semaine (utilisé dans la
spécification de conversion %a de strftime(3)).
-
MON_{1–12} (LC_TIME)
- Renvoyer le nom du n-ième mois
(utilisé dans la spécification de conversion %B de
strftime(3))
-
ABMON_{1–12} (LC_TIME)
- Renvoyer le nom abrégé du
n-ième mois (utilisé dans la spécification de
conversion %b de strftime(3)).
-
RADIXCHAR (LC_NUMERIC)
- Renvoyer le séparateur décimal (point,
virgule, etc.).
-
THOUSEP (LC_NUMERIC)
- Renvoyer le caractère séparateur pour les
milliers (groupe de trois chiffres).
-
YESEXPR (LC_MESSAGES)
- Renvoyer une expression rationnelle qui peut être
utilisée avec la fonction regex(3) afin de
reconnaître une réponse affirmative à une question de
type oui/non.
-
NOEXPR (LC_MESSAGES)
- Renvoyer une expression rationnelle qui peut être
utilisée avec la fonction regex(3) afin de
reconnaître une réponse négative à une
question de type oui/non.
-
CRNCYSTR (LC_MONETARY)
- Renvoyer le symbole monétaire
précédé par « - » si le
symbole doit apparaître avant la valeur,
« + » si le symbole doit apparaître
après la valeur, ou bien « . » si le
symbole doit remplacer le séparateur décimal.
La liste ci-dessus ne couvre que quelques exemples des éléments
qui peuvent être obtenus. Pour une liste plus détaillée,
consultez
The GNU C Library Reference Manual.
En cas de succès, ces fonctions renvoient un pointeur vers une
chaîne correspondant à la valeur de
item pour les
paramètres régionaux spécifiés.
Si aucune localisation n'a été sélectionnée par
setlocale(3) pour la catégorie appropriée,
nl_langinfo() renvoie un pointeur vers la chaîne correspondante
dans la localisation « C ». C'est aussi vrai pour
nl_langinfo_l() si
locale spécifie des paramètres
régionaux pour lesquels
langinfo n'est pas définie.
Si
item n'est pas valable, un pointeur vers une chaîne vide est
renvoyé.
Le pointeur renvoyé par ces fonctions peut référencer des
données statiques qui peuvent être
écrasées ; il peut aussi être rendu non valable
par un appel subséquent à
nl_langinfo(),
nl_langinfo_l() ou
setlocale(3). Les mêmes constatations
s'appliquent à
nl_langinfo_l() si l'objet définissant les
paramètres régionaux et référencé par
locale est désalloué ou modifié par
freelocale(3) ou
newlocale(3).
POSIX stipule que l'application ne doit pas modifier la chaîne de
caractères renvoyée par ces fonctions.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
nl_langinfo() |
Sécurité des threads |
MT-Safe locale |
POSIX.1-2001, POSIX.1-2008, SUSv2.
Le comportement de
nl_langinfo_l() est non défini si
locale
est l’objet définissant les paramètres régionaux
spécial
LC_GLOBAL_LOCALE ou n'est pas un objet
définissant les paramètres régionaux valable.
Le programme suivant définit les paramètres régionaux pour
le type de caractères et les valeurs numériques en fonction de
l'environnement et interroge le jeu de caractères du terminal et le
séparateur décimal.
#include <langinfo.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
setlocale(LC_CTYPE, "");
setlocale(LC_NUMERIC, "");
printf("%s\n", nl_langinfo(CODESET));
printf("%s\n", nl_langinfo(RADIXCHAR));
exit(EXIT_SUCCESS);
}
locale(1),
localeconv(3),
setlocale(3),
charsets(7),
locale(7)
Le manuel de référence de la bibliothèque C GNU
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]