Nota: Certaines des commandes ci-dessous nécessitent les privilèges de l'utilisateur root, envisagez l'utilisation de sudo
.
Informations de base
Selon man locale-gen
les locales sont définies dans plusieurs fichiers.
/etc/locale.gen
Le fichier de configuration principal, qui a un format simple : chaque ligne qui n'est pas vide et ne commence pas par un # est traitée comme une définition de locale qui doit être construite.
/var/lib/locales/supported.d/
Un répertoire contenant les snippets locale.gen fournis par les paquets language-pack. Ne les modifiez pas manuellement, ils seront écrasés lors des mises à jour des paquets.
Des détails complets sur les locaux de l Arch Wiki .
Vérification des locales et de la locale
Pour vérifier les locales (déjà) générées, exécutez l'une des commandes suivantes (avec des différences mineures dans les résultats).
locale -a
localedef --list-archive
localectl list-locales
Pour vérifier la locale actuellement utilisée, exécutez l'une des commandes suivantes (avec des différences mineures dans les résultats).
locale
localectl
Définition et génération de (nouvelles) locales
Les locales sont généralement définies en décommentant les lignes dans le fichier /etc/locale.gen
après quoi il faut courir locale-gen
est nécessaire.
nano /etc/locale.gen # uncomment desired lines (locales)
locale-gen
Cela générera des fichiers de locales pour chaque ligne non commentée dans le fichier /etc/locale.gen
(et sous /var/lib/locales/supported.d/
), qu'ils aient été générés précédemment ou non.
Alternativement, la commande
locale-gen <locale>
va décommenter la ligne correspondante dans locale-gen
tout en générant la locale désirée et seulement celle-ci.
Suppression des locales
Pour supprimer les locales dans /etc/locale.gen
il suffit de commenter les lignes souhaitées et de régénérer les locales en utilisant locale-gen
. La commande locale-gen --purge <locale>
ne fait pas ce que le modificateur suggère.
Pour supprimer les locales sous /var/lib/locales/supported.d/
est plus délicat. Puisque tout fichier /var/lib/locales/supported.d/<code>
dépend du paquet language-pack-<code>-base
tout changement apporté au premier sera restauré lorsque le second sera mis à jour.
Solution. Pour empêcher les changements sous /var/lib/locales/supported.d/
et y placer des fichiers avec l'option "Attribut "immuable (i) . Donc, au lieu de supprimer des fichiers, videz-les. Par exemple :
cd /var/lib/locales/supported.d/
rm <code> && touch <code> # <code> has been emptied
lsattr <code> # regular attributes
chattr +i <code> # adding (+) immutable
lsattr <code> # checking attributes
Définition de la locale
La définition et la génération des locales ne définissent pas les locales du système. L'une des commandes suivantes permet d'obtenir ce résultat.
echo LANG=<code> | sudo tee /etc/locale.conf # reboot (might be ignored in Ubuntu)
localectl set-locale LANG=<code>