Locale (Français)

État de la traduction:
Cet article est la version francophone de
Locale
. Date de la dernière traduction: 2025-05-18. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
Related articles
Environment variables
Localization
Les
Locales
, aussi appelés paramètres régionaux, sont utilisées par
glibc
et d'autres programmes ou bibliothèques tenant compte des spécificités locales pour rendre le texte, afficher correctement les valeurs monétaires régionales, les formats d'heure et de date, les idiosyncrasies alphabétiques et d'autres normes spécifiques locales.
Génération de locales
Les noms de locales sont généralement de la forme
language[_territory][. codeset][@modifier]
, où
language
est un
code de langage ISO 639
,
territory
est un
code de pays ISO 3166
, et
codeset
est un
jeu de caractères
ou un identifiant d'encodage comme
ISO-8859-1
ou
UTF-8
. Consultez
setlocale(3)
.
Pour obtenir une liste des locales activées, exécutez :
$ locale --all-locales
Avant qu'une locale puisse être activée sur le système, elle doit être générée. Ceci peut être réalisé en décommentant les entrées applicables dans
/etc/locale.gen
, et en exécutant
locale-gen
. De manière équivalente, commenter les entrées désactive leurs locales respectives. Lorsque vous effectuez des modifications, tenez compte des localisations requises par les autres utilisateurs du système, ainsi que des
#Variables
spécifiques.
Par exemple, pour le français, décommentez
fr_FR.UTF-8 UTF-8
(en plus de
en_US.UTF-8 UTF-8
qui est couramment utilisé comme solution de repli par divers outils) :
/etc/locale.gen
...
#fr_CH ISO-8859-1  
fr_FR.UTF-8 UTF-8  
#fr_FR ISO-8859-1  
...
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
...
Sauvegardez le fichier, et générez la locale :
# locale-gen
Note
locale-gen
s'exécute également à chaque mise à jour de
glibc
.
[1]
UTF-8
est recommandé par rapport aux autres jeux de caractères.
[2]
Définition de la locale
Pour afficher la locale actuellement définie et les paramètres environnementaux associés, tapez :
$ locale
La locale à utiliser, choisie parmi celles générées précédemment, est définie dans les fichiers
locale.conf
. Chacun de ces fichiers doit contenir une liste d'affectations de
variables d'environnement
séparées par des nouvelles lignes, ayant le même format que celui fourni par
locale
.
Pour lister les locales disponibles qui ont été précédemment générées, exécutez :
$ localedef --list-archive
Alternativement, en utilisant
localectl(1)
:
$ localectl list-locales
Définir la locale système
Pour définir la locale système, écrivez la variable
LANG
dans
/etc/locale.conf
, où
en_US.UTF-8
appartient à la
première colonne
d'une entrée non commentée dans
/etc/locale.gen
:
/etc/locale.conf
LANG=
en_US.UTF-8
Alternativement, exécutez :
# localectl set-locale LANG=
en_US.UTF-8
Consultez
#Variables
et
locale.conf(5)
pour plus de détails.
Remplacer la locale du système par session utilisateur
La locale système peut être remplacée dans chaque session utilisateur en créant ou en modifiant
$XDG_CONFIG_HOME/locale.conf
. (généralement
~/.config/locale.conf
).
La priorité de ces fichiers
locale.conf
est définie dans
/etc/profile.d/locale.sh
.
Astuce
Cela peut également permettre de conserver les journaux dans
/var/log/
en anglais tout en utilisant la langue locale dans l'environnement utilisateur.
Vous pouvez créer un fichier
/etc/skel/.config/locale.conf
de sorte que tous les nouveaux utilisateurs ajoutés à l'aide de
useradd
et de l'option
-m
verront
~/.config/locale.conf
automatiquement générés. Voir
Users and groups (Français)#Exemple d'ajout d'un utilisateur
.
Rendre les changements de locale immédiats
Une fois que les fichiers
locale.conf
du système et de l'utilisateur ont été créés ou modifiés, leurs nouvelles valeurs prendront effet pour les nouvelles sessions à la connexion. Pour que l'environnement actuel utilise les nouveaux paramètres, il suffit d'annuler l'option
LANG
et de sourcer
/etc/profile.d/locale.sh
:
$ unset LANG
$ source /etc/profile.d/locale.sh
Note
La variable
LANG
doit d'abord être désactivée, sinon
locale.sh
ne mettra pas à jour les valeurs de
locale.conf
. Seules les variables nouvelles et modifiées seront mises à jour ; les variables supprimées de
locale.conf
seront toujours définies dans la session.
Autres utilisations
Les variables de locale peuvent également être définies avec les méthodes standard comme expliqué dans les
variables d'environnement
.
Par exemple, afin de tester ou de déboguer une application particulière pendant le développement, elle peut être lancée avec quelque chose comme :
$ LC_ALL=C.UTF-8 ./
mon_application
.sh
De même, pour définir la locale de tous les processus exécutés à partir du shell actuel (par exemple, lors de l'installation du système) :
$ export LC_ALL=C.UTF-8
Variables
Les fichiers
locale.conf
prennent en charge les variables d'environnement suivantes.
LANG
LANGUAGE
LC_ADDRESS
LC_COLLATE
LC_CTYPE
LC_IDENTIFICATION
LC_MEASUREMENT
LC_MESSAGES
LC_MONETARY
LC_NAME
LC_NUMERIC
LC_PAPER
LC_TELEPHONE
LC_TIME
La signification complète des variables
LC_*
ci-dessus se trouve sur la page de manuel
locale(7)
, tandis que les détails de leur définition sont décrits sur
locale(5)
.
Note
Les programmes suivent
l'ordre de priorité
lorsqu'ils recherchent des valeurs dépendantes de la locale.
LANG : locale par défaut
La locale définie pour cette variable sera utilisée pour toutes les variables
LC_*
qui ne sont pas explicitement définies.
Astuce
Supposez que vous êtes un utilisateur anglais en Espagne, et que vous voulez que vos programmes traitent les nombres et les dates selon les conventions espagnoles, et que seuls les messages soient en anglais. Dans ce cas, vous pouvez définir la variable
LANG
sur
es_ES.UTF-8
et la variable
LC_MESSAGES
(pour la traduction des messages de l'interface utilisateur) à
en_US.UTF-8
.
LANGUAGE : locales de repli
Les programmes qui utilisent
gettext
pour les traductions respectent l'option
LANGUAGE
en plus des variables habituelles. Cela permet aux utilisateurs de spécifier une
liste
de locales qui seront utilisées dans cet ordre. Si une traduction pour la locale préférée n'est pas disponible, une autre d'une locale similaire sera utilisée à la place de la locale par défaut. Par exemple, un utilisateur australien peut vouloir utiliser l'orthographe britannique plutôt que l'orthographe américaine :
locale.conf
LANG=en_AU.UTF-8
LANGUAGE=en_AU:en_GB:en
Note
De nombreuses applications ne nomment pas ou n'aliasent pas leur locale anglaise comme
en
ou
en_US
, mais en font la locale par défaut, qui est
C
. Si dans
LANGUAGE
une locale non anglaise est placée après l'anglais, par exemple
LANGUAGE=en_US:en:es_ES
, les applications peuvent choisir la locale secondaire malgré la disponibilité de chaînes anglaises.
[3]
La solution est de toujours placer explicitement la locale
C
après l'anglais. Par exemple,
LANGUAGE=en_US:en:C:es_ES
.
LC_TIME : format de date et d'heure
Si
LC_TIME
est défini sur
en_US.UTF-8
, par exemple, le format de la date sera "MM/JJ/AAAA".  Si vous souhaitez utiliser le format de date
ISO 8601
"AAAA-MM-JJ", utilisez :
locale.conf
LC_TIME=en_DK.UTF-8
Vous pouvez imprimer l'horodatage actuel en utilisant le format de date et d'heure de votre région avec
date +"%c"
.
glibc
2.29 a corrigé un bogue,
en_US.UTF-8
a commencé à s'afficher au format 12 heures, comme prévu.  Si vous souhaitez utiliser le format 24 heures, utilisez
LC_TIME=C.UTF-8
.
Note
Les programmes ne respectent pas nécessairement cette variable pour formater la date. Par exemple,
date(1)
utilise ses propres paramètres pour le faire, et
Firefox
a cessé d'honorer
LC_TIME
avec les versions 57 à 84 (
Bug 1429578
).
LC_COLLATE : collation
Cette variable régit les règles de collation utilisées pour le tri et les expressions régulières.
En donnant à cette variable la valeur
C.UTF-8
, la commande
ls
peut par exemple trier les fichiers à points en premier, puis les noms de fichiers en majuscules et en minuscules :
locale.conf
LC_COLLATE=C.UTF-8
Consultez également
[4]
.
Pour contourner les problèmes potentiels, Arch avait l'habitude de définir
LC_COLLATE=C
dans
/etc/profile
, mais cette méthode est maintenant dépréciée.
LC_ALL : dépannage
La locale définie pour cette variable remplacera toujours
LANG
et toutes les autres variables
LC_*
, qu'elles soient définies ou non. Si
LC_ALL
est défini sur
C
ou
C.UTF-8
, il remplacera également
LANGUAGE
.
LC_ALL
est la seule variable
LC_*
qui
ne peut pas
être définie dans les fichiers
locale.conf
: elle est destinée à être utilisée uniquement à des fins de test ou de dépannage, par exemple dans
/etc/profile
.
Dépannage
Pour les problèmes d'encodage, consultez
Character encoding#Troubleshooting
.
Mon système utilise toujours la mauvaise langue
Il est possible que les variables d'environnement soient redéfinies dans d'autres fichiers que
locale.conf
. Consultez
Environment variables#Defining variables
pour plus de détails.
Si vous utilisez un environnement de bureau, tel que
GNOME
, ses paramètres linguistiques peuvent remplacer les paramètres de
locale.conf
.
KDE
Plasma permet également de modifier la langue de l'interface utilisateur via les paramètres système. Si l'environnement de bureau utilise toujours la langue par défaut après la modification,
supprimez le fichier
~/.config/plasma-localerc
(précédemment :
~/.config/plasma-locale-settings.sh
) devrait résoudre le problème.
Si vous utilisez un gestionnaire d'affichage en combinaison avec
accountsservice
, suivez les instructions dans
Display manager (Français)#Définir la langue de la session utilisateur
.
LightDM
utilisera automatiquement
accountsservice
pour définir les paramètres régionaux d'un utilisateur s'il est installé. Sinon, LightDM stocke la configuration de la session utilisateur dans
~/.dmrc
. Il est possible qu'un paramètre local non désiré soit récupéré à partir de là également.
L'utilisation d'une locale personnalisée entraîne des problèmes
Lors de l'installation d'une locale qui n'est pas officiellement prise en charge (par exemple,
locale-en_xx
AUR
), des problèmes peuvent survenir, tels que des
touches mortes/composées ne fonctionnant pas dans certaines applications
ou des
applications signalant des locales manquantes
.
Après l'installation d'une locale personnalisée, une intervention manuelle est nécessaire pour résoudre ces problèmes.
Il existe
deux approches
(remplacez
en_XX.UTF-8
par l'identifiant de votre locale personnalisée) :
Définir LC_CTYPE
Définir
LC_CTYPE
à une locale officiellement supportée (comme
en_US.UTF-8
), par exemple :
/etc/locale.conf
LANG=en_XX.UTF-8
LC_CTYPE=en_US.UTF-8
Modifier la base de données Xlib
Modifiez la base de données Xlib en ajoutant ce qui suit :
/usr/share/X11/locale/locale.dir
en_US.UTF-8/XLC_LOCALE en_XX.UTF-8
en_US.UTF-8/XLC_LOCALE : en_XX.UTF-8
/usr/share/X11/locale/compose.dir
en_US.UTF-8/Compose en_XX.UTF-8
en_US.UTF-8/Compose : en_XX.UTF-8
Mesures métriques avec la locale US
Dans certains outils, comme
nvme-cli
, le type d'unité est sélectionné en fonction des paramètres de
locale
; ainsi, les températures sont affichées en Fahrenheit si les paramètres locaux américains sont utilisés. Si vous souhaitez utiliser des mesures métriques avec une locale américaine, pour obtenir des températures en Celsius par exemple, l'ajout de
LC_MEASUREMENT=metric
à
/etc/locale.conf
devrait fonctionner si l'outil recherche
LC_MEASUREMENT
plutôt que simplement le pays.
[5]
Voir aussi
Locales - wiki de glibc
Gentoo:Localization/Guide
Article du wiki Gentoo censé dater de 2008 ou plus tôt
Test de collationnement interactif de l'ICU
.
Initiative d'internationalisation ouverte du groupe de normalisation libre (Free Standards Group)
.
La définition POSIX d'une locale
Variables d'environnement Locale