Le fichier /etc/locale.conf
ci-dessous
défini certaines variables d'environnement nécessaires pour la prise
en charge native des langues. Les configurer a pour résultat :
La sortie des programmes est traduite dans votre langue maternelle
Le classement correct des caractères en lettres, chiffres et autres classes. Cela est nécessaire pour bash pour accepter correctement les caractères non-ASCII pour les paramètres linguistiques non anglais
Le classement alphabétique correct pour les autres pays
La taille de papier par défaut appropriée
Le formatage correct de la monnaie, du temps et de la date
Remplacez <ll>
ci-dessous par les deux lettres de la langue désirée (par exemple
« fr ») et remplacez <CC>
par les deux lettres du
pays approprié (par exemple « FR »). <charmap>
doit être remplacé
par la table de caractères classique pour le paramètre linguistique
choisi. On peut aussi ajouter des modificateurs facultatifs comme
« @euro ».
La liste des paramètre régionaux pris en charge par Glibc peut être obtenue en exécutant la commande suivante :
locale -a
Les jeux de caractères peuvent aussi avoir certains alias, par
exemple « ISO-8859-1 » est aussi référencé comme
« iso8859-1 » et « iso88591 ».
Certaines applications ne peuvent pas gérer les différents synonymes
(il est par exemple requis que « UTF-8 » soit
écrit « UTF-8 » et pas « utf8 »), il est
donc plus sur de choisir le nom classique pour un paramètre
linguistique particulier. Pour déterminer le nom classique, lancez la
commande suivante, où <nom du
paramètre linguistique>
est la sortie donnée par
locale -a pour votre
langue préférée (« fr_FR.iso88591 » dans notre exemple).
LC_ALL=<nom du paramètre linguistique>
locale charmap
Pour le paramètre « fr_FR.iso885915 », la commande va afficher :
ISO-8859-15
Cela résulte en un paramètre de régionalisation final de « fr_FR.ISO-8859-15 ». Il est important que le paramètre trouvé en utilisant la syntaxe précédente soit testé avant d'être ajouté aux fichiers de démarrage de bash :
LC_ALL=<nom du paramètre linguistique> locale language LC_ALL=<nom du paramètre linguistique> locale charmap LC_ALL=<nom du paramètre linguistique> locale int_curr_symbol LC_ALL=<nom du paramètre linguistique> locale int_prefix
Les commandes ci-dessus devraient afficher la langue, l'encodage des caractères utilisé par le paramètre, la monnaie locale ainsi que le préfixe de téléphone à composer afin d'entrer dans le pays. Si une de ces commandes précédentes échoue, cela signifie que votre paramètre n'a pas été installé dans le chapitre 8 ou n'est pas prise en charge par l'installation par défaut de Glibc.
locale: Cannot set LC_* to default locale: No such file or directory
Si cela arrive, vous devez soit installer le paramètre régional désiré en utilisant la commande localedef, ou en utilisant un autre paramètre. Les instructions suivantes supposent qu'il n'y a pas de tels messages d'erreur de Glibc.
Certains paquets au-delà de LFS peuvent ne pas prendre en charge le paramètre linguistique que vous avez choisi. Un exemple est la bibliothèque X (partie du système X Window), qui renvoie le message d'erreur suivant si le paramètre ne correspond pas exactement à l'un des jeux de caractères de ses fichiers internes :
Warning: locale not supported by Xlib, locale set to C
Dans plusieurs cas Xlib s'attend à ce que le jeu de caractères soit inscrit en notation majuscule avec les tirets classiques. Par exemple « ISO-8859-1 » plutôt que « iso88591 ». Il est aussi possible de trouver la spécification appropriée en retirant la partie correspondant au jeu de caractères de la spécification du paramètre régional. Cela peut être testé en exécutant la commande locale charmap des deux paramètres. Par exemple, il faudra changer « de_DE.ISO-8859-15@euro » en « de_DE@euro » pour que ce paramètre soit reconnu par Xlib.
D'autres programmes ne vont aussi pas fonctionner correctement (mais ne vont pas nécessairement afficher un message d'erreur) si le nom du paramètre régional ne rencontre pas leurs attentes. Dans d'autres cas, rechercher comment d'autres distributions Linux prennent en charge votre paramètre régional peut fournir des informations utiles.
Une fois que les bonnes configurations de paramètres linguistiques
ont été effectuées, créez le fichier /etc/locale.conf
:
cat > /etc/locale.conf << "EOF"
LANG=<ll>_<CC>.<charmap><@modifiers>
EOF
Remarquez que vous devez modifier /etc/locale.conf
avec l'utilitaire systemd
localectl. Pour
utiliser localectl avec
l'exemple précédent, lancez :
localectl set-locale LANG="<ll>_<CC>.<charmap><@modifiers>
"
Vous pouvez aussi spécifier d'autres variables d'environnement comme
LANG
, LC_CTYPE
,
LC_NUMERIC
ou n'importe quel autre
variable de la sortie de locale. Un exemple où LANG
est définie à en_US.UTF-8 mais LC_CTYPE
est défini juste à en_US est :
localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US"
Remarquez que la commande localectl ne fonctionne pas dans l'environnement chroot. Elle ne peut être utilisée qu'après avoir démarré le système LFS avec systemd.
Les paramètres « C » (par défaut) et « en_US » (recommandé pour les utilisateurs anglophones des États-Unis) sont différents. « C » utilise le jeu de caractères US-ASCII 7-bit et traite les octets avec le bit de point fort à 1 comme des caractères invalides. C'est pourquoi, par exemple, la commande ls les remplace par des points d'interrogation sous ce paramètre. De plus, les messages contenant ces caractères envoyés avec Mutt ou Pine ne sont pas conformes aux RFC (le jeu de caractères dans le mail sortant est indiqué comme « unknown 8-bit »). Vous ne pouvez donc utiliser le paramètre régional « C » que si vous êtes sûr que vous n'aurez jamais besoins de caractère 8 bits.