Le programme shell /bin/bash (dénommé
ci-après “le shell”) utilise une collection de fichiers
de démarrage pour aider à la création d'un environnement d'exécution.
Chaque fichier a une utilisation spécifique et pourrait avoir des
effets différents sur les environnements de connexion et interactif.
Les fichiers du répertoire /etc
fournissent un paramétrage global. Si un fichier équivalent existe
dans le répertoire personnel, il pourrait surcharger les paramétrages
globaux.
Un shell interactif de connexion est lancé après une connexion
réussie, en utilisant /bin/login, par la lecture du
fichier /etc/passwd
. Un shell interactif sans
connexion est lancé en ligne de commande (c'est-à-dire
[prompt]$
/bin/bash). Un shell non
interactif est habituellement présent quand un script shell est en
cours d'exécution. Il est non interactif parce qu'il traite un script
et n'attend pas une saisie de l'utilisateur entre les
commandes.
Pour plus d'informations, voir info bash sous la section Bash Startup Files and Interactive Shells (Fichiers de démarrage de Bash et shells interactifs).
Les fichiers /etc/profile
et
~/.bash_profile
sont lus quand le shell est
appelé en tant que shell interactif de connexion.
Le fichier /etc/profile
de base ci-dessous
configure quelques variables d'environnement nécessaire au support des langues
natives. Les configurer convenablement résulte en ce qui
suit :
La sortie des programmes traduite dans la langue native
Un classement correct des caractères en lettres, chiffres et autres classes. Ceci est nécessaire pour que bash accepte correctement les caractères non ASCII dans les lignes de commandes pour les locales autres qu'anglaises
L'ordre de tri alphabétique correct pour le pays
La taille de papier par défaut appropriée
Le bon formatage des valeurs monétaires, de l'heure et des dates
Ce script règle aussi la variable d'environnement INPUTRC
qui font que Bash et Readline utilisent le fichier
/etc/inputrc
créé auparavant.
Remplacez [ll]
ci-dessous
avec le code à deux lettres de la langue désirée (par exemple,
“en”) et [CC]
avec le code à
deux lettres du pays approprié (par exemple, “GB”).
<charmap>
devra être remplacé avec le
jeu de caractères canonique de la locale choisie. Des modificateurs optionnels
comme “@euro” peuvent aussi être présents.
La liste de toutes les locales supportées par Glibc peut être obtenue en exécutant la commande suivante :
locale -a
Les locales peuvent avoir plusieurs synonymes. Par exemple,
“ISO-8859-1” est aussi appelée “iso8859-1” et
“iso88591”. Quelques applications ne peuvent pas gérer les
différents synonymes correctement, donc il est plus sûr de choisir le nom
canonique pour une locale particulière. Pour déterminer le nom canonique,
lancez la commande suivante, où [nom de la locale]
est l'affichage donné par locale -a pour votre
locale préférée (“en_GB.iso88591” dans notre exemple).
LC_ALL=[nom de la locale]
locale charmap
Pour la locale “en_GB.iso88591”, la commande ci-dessus affichera :
ISO-8859-1
Ceci résulte en un paramétrage final de locale avec “en_GB.ISO-8859-1”. Il est important que la locale trouvée utilisant l'heuristique ci-dessus soit testée avant d'être ajoutée aux fichiers de démarrage de Bash :
LC_ALL=[nom de la locale] locale language LC_ALL=[nom de la locale] locale charmap LC_ALL=[nom de la locale] locale int_curr_symbol LC_ALL=[nom de la locale] locale int_prefix
Les commandes ci-dessus devraient afficher les noms du pays et de la langue, le codage des caractères utilisé par la locale, la monnaie et le préfixe à composer avant de saisir le numéro de téléphone. Si une des commandes ci-dessus échoue avec un message similaire à un de ceux montrés ci-dessous, cela signifie que votre locale n'a pas été installée dans le chapitre 6 ou qu'elle n'est pas supportée par l'installation par défaut de Glibc.
locale: Cannot set LC_* to default locale: No such file or directory
Si cela arrive, vous pouvez soit installer la locale désirée en utilisant la commande localedef soit considérer l'utilisation d'une locale différente. Les instructions suivantes supposent qu'il n'y a pas eu de tels messages de Glibc.
Certains paquets en dehors de CLFS pourraient aussi ne pas avoir de support pour la locale que vous avez choisi. Un exemple est la bibliothèque X (qui fait partie du système X Window), qui affiche le message d'erreur suivant :
Warning: locale not supported by Xlib, locale set to C
Il est parfois possible de corriger cela en supprimant la partie charmap de la spécification de la locale, tant que cela ne change pas le plan de caractères que Glibc associe à à la locale (vous pouvez vérifier ceci en lançant la commande locale charmap dans les deux locales). Par exemple, vous pourriez devoir modifier "de_DE.ISO-8859-15@euro" en "de_DE@euro" afin que cette locale soit reconnue par Xlib.
D'autres paquets peuvent aussi mal fonctionner (mais pourraient ne pas nécessairement afficher de messages d'erreurs) si le nom de la locale ne correspond pas à leur attente. Dans de tels cas, vous pouvez obtenir des informations utiles en cherchant comment les autres distributions Linux supportent votre locale.
Une fois que les bons paramètres de locale ont été déterminés,
créez le fichier /etc/profile
:
cat > /etc/profile << "EOF"
# Début de /etc/profile
export LANG=[ll]
_[CC]
.[charmap]
export INPUTRC=/etc/inputrc
# Fin de /etc/profile
EOF
Les locales “C” (par défaut) et “en_US” (celle recommandée pour les utilisateurs de langue anglaise vivant aux États-Unis) sont différentes.
Le réglage du plan de clavier, de la police de l'écran et des variables d'environnement associées sont les seules étapes d'internationalisation nécessaires pour supporter les locales qui utilisent les encodages monobytes erdinaires et l'écriture de droite à gauche. Des cas plus complexes (y compris les locales basées sur UTF-8) nécessitent des étapes supplémentaires et des correctifs complémentaires car beaucoup d'applications ont tendance à mal fonctionner dans de telles conditions. Ces étapes et ces correctifs ne sont pas comprises dans le livre CLFS et de telles locales ne sont pas encore supportées par CLFS.