Rocky Linux / Changer la langue du système et les paramètres régionaux

Sous Rocky Linux, localectl permet de consulter et de modifier les paramètres régionaux par défaut, notamment la langue des messages. Pour utiliser le français de France, installez au besoin glibc-langpack-fr, définissez LANG=fr_FR.UTF-8, puis ouvrez une nouvelle session pour vérifier le résultat.

sudo dnf install glibc-langpack-fr

sudo localectl set-locale LANG=fr_FR.UTF-8

Une locale est un ensemble de paramètres régionaux : elle détermine la langue des messages, les formats de date et de nombre, les règles de tri et l’encodage des caractères. Si les journaux cohérents et la sortie d'automatisation sont plus importants que les messages localisés, envisagez de garder C.UTF-8 ou en_US.UTF-8 au lieu de changer le serveur en français.

Consulter les paramètres du système et de la session

localectl status

locale

localectl status affiche les paramètres régionaux du système et la disposition du clavier de la console. La commande locale affiche les valeurs effectivement appliquées à la session shell actuelle, y compris LANG, LC_TIME et LC_MESSAGES.

Une session de connexion existante peut conserver ses anciennes variables d'environnement après le réglage du système. Vérifiez les deux commandes lorsque vous confirmez si une modification a pris effet.

Lister les locales disponibles

localectl list-locales

locale -a

Si la liste ne contient pas l'équivalent de fr_FR.UTF-8, installez le paquet linguistique français.

sudo dnf install glibc-langpack-fr

Pour les paramètres régionaux anglais, installez glibc-langpack-en si nécessaire. La disponibilité des paquets peut varier avec la version de Rocky Linux et les dépôts activés, alors vérifiez le paquet avant de l'installer.

dnf info glibc-langpack-fr

dnf provides '*/fr_FR*'

Modifier la langue par défaut du système

Choisir le français pour le système

sudo localectl set-locale LANG=fr_FR.UTF-8

localectl gère les paramètres régionaux du système et enregistre normalement le réglage dans /etc/locale.conf. Les variables prises en charge dans ce fichier sont documentées dans le manuel systemd locale.conf.

Choisir l’anglais ou une locale neutre UTF-8

sudo localectl set-locale LANG=en_US.UTF-8

Une locale anglaise peut être pratique lorsque la documentation de dépannage et les recherches de journal utilisent des messages d'erreur anglais. Si l'environnement installé le supporte, la locale neutre C.UTF-8 est également utile pour les serveurs d'automatisation.

Vérifier que le changement est actif

Déconnectez-vous puis reconnectez-vous, ou ouvrez une nouvelle session SSH, avant de vérifier le résultat.

localectl status

locale

printf '%s\n' "$LANG"

Un redémarrage complet n’est normalement pas nécessaire. Cependant, un service en cours d'exécution peut garder l'environnement qu'il a reçu quand il a commencé. Si la localisation d'un service est importante, inspectez sa configuration d’environnement dans systemd et redémarrez-le si nécessaire, en tenant compte de son impact.

Modifier la langue du terminal actuel seulement

Définissez une variable d’environnement pour modifier les paramètres du shell actuel et des processus qu’il lance, sans modifier la configuration globale.

export LANG=fr_FR.UTF-8

Pour appliquer une locale à une seule commande, placez l'affectation de la variable avant la commande.

LANG=C.UTF-8 dnf info bash

Ces changements disparaissent à la sortie du shell. Si un script nécessite des messages prévisibles, un tri ou un formatage, définissez explicitement la locale souhaitée dans le script.

Comprendre la priorité de LANG et de LC_*

Variable Objet Considérations importantes
LANG Locale par défaut lorsqu'une variable spécifique à une catégorie n'est pas définie Cette valeur est suffisante pour la plupart des changements dans la langue du système.
LC_MESSAGES Langue utilisée pour les messages du programme Il peut modifier les messages tout en conservant d'autres formats de date et de nombre.
LC_TIME Représentation de la date et de l'heure Les scripts peuvent échouer lorsqu'ils analysent la sortie de date localisée.
LC_ALL A priorité sur les autres variables de locale Utile pour un diagnostic temporaire ; ne placez pas LC_ALL dans /etc/locale.conf, où cette variable n’est pas autorisée.

Si LC_ALL est réglé, il se peut que la modification de LANG ne modifie pas le résultat.

env | grep -E '^(LANG|LC_)'

Corriger un affichage incorrect des caractères

  • Vérifiez que la locale UTF-8 souhaitée apparaît dans locale -a.
  • Vérifiez que le client SSH et l’émulateur de terminal utilisent UTF-8.
  • Assurez-vous que la police sélectionnée contient les glyphes nécessaires aux caractères affichés.
  • Vérifiez si l'application a sa propre langue ou le paramètre de codage.
  • Vérifiez que les scripts et les fichiers de données sont effectivement enregistrés sous UTF-8.

La disponibilité d’une locale et celle des glyphes dans la police sont deux questions distinctes. Même avec les bons paramètres régionaux, des caractères peuvent apparaître sous forme de carrés si la police du terminal ne possède pas les glyphes nécessaires.

Foire aux questions

Pourquoi la langue de la session actuelle ne change-t-elle pas après localectl ?

Un shell existant conserve les variables d'environnement qu'il a reçues lors de la connexion. Reconnectez-vous ou démarrez une nouvelle connexion SSH, puis vérifiez le résultat avec locale.

Faut-il configurer tous les serveurs en français ?

Cela dépend de l'équipe opérationnelle et des exigences en matière d'automatisation. Une locale anglaise ou C.UTF-8 peut être plus pratique lorsque vous recherchez des messages d'erreur anglais ou que vous avez besoin d'une sortie de script prévisible.

Puis-je n'exécuter qu'une seule commande en anglais ?

Oui. Préfixez la commande avec une affectation locale, telle que LANG=C.UTF-8 COMMAND. Utilisez locale -a pour confirmer les noms locaux exacts installés sur le système.

La modification de la locale change-t-elle la disposition du clavier ?

Non. Les paramètres régionaux et la disposition du clavier de la console sont indépendants. Vérifiez les deux dans localectl status. La disposition du clavier dans un terminal SSH distant est habituellement contrôlée par le système d'exploitation client.

Résumé

Installez le paquet de langues requis et exécutez localectl set-locale LANG=fr_FR.UTF-8 pour changer la locale par défaut de Rocky Linux en français. Vérifiez le résultat d'une nouvelle session de connexion avec localectl status et locale.

Sur les serveurs de production, choisissez une locale seulement après avoir examiné la langue des messages, les formats de date et de nombre, les règles de tri et le comportement d'automatisation. La documentation de configuration des paramètres régionaux de Red Hat fournit la procédure sous-jacente utilisée par les systèmes compatibles avec Rocky Linux.