zion - locale
Nom
locale - Description du support multilingue.
Résumé
.nf #include <locale.h> .fi
Description
Une localisation est 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 sa localisation 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 qu'il déclare sont setlocale() pour indiquer la localisation et localeconv() pour obtenir des informations sur la mise en forme des nombres.
Il existe différentes catégories d'informations locales 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() , il devient possible de fixer l'une de ces informations :
LC_COLLATE
est utilisé pour modifier le comportement des fonctions strcoll() et strxfrm() , qui permettent les comparaisons de chaînes dans l'alphabet local. Par exemple le double-s allemand, est ordonné comme 'ss'. |
LC_TYPE
permet de modifier les manipulations et classifications de caractères, comme celles des fonctions isupper() et toupper() , et celles des fonctions travaillant sur des caractères multi-octets comme mblen() ou wctomb() . |
LC_MONETARY
modifie les informations renvoyées par localeconv() 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 par les fonctions strfmon() . |
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() , ngettext() , et rpmatch() pour aider à utiliser ces données. Les fonctions de la famille Gettext obéissent aussi à la variable d'environnement LANGUAGE . |
LC_NUMERIC
modifie les informations utilisées par les fonctions des familles printf() et scanf() , lorsqu'elles doivent utiliser la configuration locale. Ces données peuvent également être obtenues avec la fonction localeconv() . |
LC_TIME
modifie le comportement de la fonction strftime() affichant l'heure dans un format local. Par exemple la plupart de l'Europe utilise un format horaire sur 24 heures, alors que les USA utilisent un format sur 12 heures. |
LC_ALL
regroupe toutes les catégories ci-dessus. |
Si le second argument de la fonction setlocale() est une chaîne de caractères vide, , ceci correspond à la localisation par défaut, déterminée avec les étapes suivantes :
1.
Si une 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 une 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 struct lconv , renvoyée par la fonction localeconv() , déclarée ainsi : .nf struct lconv { /* -------- Informations numériques (non-monétaires) ------- */ char *decimal_point; /* Séparateur décimal */ char *thousands_sep; /* Séparateur des milliers */ /* * Chaque élément indique un nombre de chiffres dans chaque * groupe. * Les éléments d'indice les plus élevés correspondent aux grou- * pes les plus à gauche. * Un élément de valeur CHAR_MAX signifie l'arrêt du groupement. * Un élément de valeur 0 signifie que l'élément précédent est * utilisé pour tous les groupes plus à gauche. * * NDT : c'est pas clair ? ben, la V.O. non plus ! */ char *grouping; /* ----------------- Informations monétaires ---------------- */ /* Les trois premiers caractères correspondent au symbole */ /* monétaire d'après ISO 4217. Le quatrième symbole est le */ /* séparateur, le cinquième est '
Poster un commentaire