Dans le but de conserver votre système à l'heure, vous devez indiquer au système sur quel fuseau horaire il se trouve. Cherchez ce dernier dans le répertoire /usr/share/zoneinfo/, puis configurez le fichier /etc/conf.d/clock. Évitez les zones /usr/share/zoneinfo/Etc/GMT*, car leur nom porte à confusion. En effet, GMT-8 siginifie en fait GMT+8.
Exemple de code 1.1 : Sélectionner le fuseau horaire |
# ls /usr/share/zoneinfo (En supposant que vous souhaitiez Europe/Paris,) (commencez par copier le fichier de zone dans /etc.) # cp /usr/share/zoneinfo/Europe/Paris /etc/localtime (Puis indiquez au système le fuseau choisi.) # nano -w /etc/conf.d/clock TIMEZONE="Europe/Paris" # date Wed Mar 8 00:46:05 CET 2006 |
Note : Assurez-vous que l'indicateur de zone de temps (dans notre cas « CET ») correspondent à votre zone. |
Note : Vous pouvez définir TZ à une autre valeur que localtime (correspondant à un fichier existant dans /usr/share/zoneinfo) dans le fichier de démarrage de votre shell (.bash_profile pour bash) pour paramétrer le fuseau horaire au niveau utilisateur. Dans notre cas ce sera TZ="Europe/Paris". |
Dans la plupart des installations de Gentoo Linux, l'horloge matérielle est réglée sur UTC (ou GMT, « Greenwich Mean Time ») et ensuite votre fuseau horaire est pris en compte pour déterminer l'heure locale. Si, pour quelque raison que ce soit, vous avez besoin que l'horloge matérielle ne soit pas réglée sur UTC, vous devez éditer /etc/conf.d/clock et remplacer la valeur UTC de la variable CLOCK par la valeur local.
Exemple de code 2.1 : local contre GMT |
(recommandé :) CLOCK="UTC" (ou bien :) CLOCK="local" |
Les locales sont un ensemble d'informations que la plupart des programmes utilisent pour choisir une configuration propre à un pays et à une langue. Ces éléments et leur contenu font partie des bibliothèques système, et peuvent se trouver sur la plupart des systèmes dans le répertoire /usr/share/locale. Un nom de locale est généralement composé ainsi : ab_CD, avec ab qui sont les deux (ou trois) lettres du code de votre langue (comme spécifié dans la norme ISO-639), et CD sont les deux lettres du code de votre pays (comme spécifié dans la norme ISO-3166). Un nom de variante est souvent ajouté à la suite du nom de la locale, par exemple en_GB.UTF-8 ou de_DE@euro. Vous pourrez en apprendre plus en lisant l'article publié sur Wikipedia et les références qu'il contient.
Variables d'environnement pour les locales
La configuration des locales est gardée dans des variables d'environnement. On les définit en général dans le fichier /etc/env.d/02locale (pour une configuration propre à l'ensemble du système) et ~/.bashrc (pour une configuration propre à un utilisateur). Les variables permettant de contrôler différents aspects dans la configuration des locales sont données dans le tableau ci-dessous. Elles utilisent toutes un nom de locale de la forme ab_CD présentée plus haut.
| Nom de la variable | Explication |
| LANG | Définit toutes les configurations de locale d'un coup, tout en permettant une personnalisation individuelle par l'intermédiaire des paramètres de la variable LC_* ci-dessous. |
| LC_COLLATE | Définit l'ordre alphabétique des chaînes de caractères. Cette variable affecte par exemple la sortie d'une liste ordonnée de fichiers dans un répertoire. |
| LC_CTYPE | Définit les propriétés de manipulation des caractères pour un système. Cette variable détermine quels caractères font partie de l'alphabet, des caractères numériques, etc. Elle détermine également le set de caractère utilisé, si applicable. |
| LC_MESSAGES | Cette variable est utilisée pour la localisation des programmes dans les applications qui utilisent des messages basés sur un schéma de localisation (comme la majorité des programmes GNU par exemple). |
| LC_MONETARY | Définit les unités monétaires et le format des valeurs numériques de type financières. |
| LC_NUMERIC | Définit le format de valeurs numériques qui ne sont pas monétaires. Cela affecte des éléments comme le séparateur pour les décimales et pour les milliers (exemple : 100,000.90 en anglais). |
| LC_TIME | Définit le format des dates et heures. |
| LC_PAPER | Définit la taille du papier par défaut. |
| LC_ALL | Une variable spéciale qui écrase toutes les autres préférences. |
Note : Certains programmes sont écrits de telle façon qu'ils attendent des commandes avec un alphabet provenant de l'anglais traditionnel, alors que certaines variables locales, notamment la variable estonienne, utilise un autre ordre. Par conséquent, il est recommandé de spécifier explicitement la variable locale LC_COLLATE à C lorsqu'il s'agit de paramètres touchant le système complet. |
Attention : L'utilisation de LC_ALL est vivement déconseillée car elle ne peut pas être redéfinie plus tard. Ne l'utilisez que lors de tests et ne la définissez jamais dans un fichier de démarrage. |
La plupart des utilisateurs ne définissent que la variable LANG, de façon globale. Voici par exemple le cas d'une locale française en unicode: :
Exemple de code 3.1 : Définir la variable locale par défaut du système dans /etc/env.d/02locale |
LANG="fr_FR.UTF-8" LC_COLLATE="C" |
Note : Utilisez fr_FR@euro comme locale si vous désirez utiliser le nouveau symbole de la monnaie Euro. (€) |
Il est également possible, et surtout assez commun dans un cadre plus traditionnel d'UNIX, de laisser les préférences globales inchangées, i.e. dans la locale « C ». Les utilisateurs peuvent toujours spécifier leurs locales préférées dans le fichier de configuration de leur propre shell :
Exemple de code 3.2 : Définir la locale de l'utilisateur dans le fichier ~/.bashrc |
export LANG="fr_FR.UTF-8" export LC_COLLATE="C" |
Une autre façon de configurer le système est de le laisser dans la locale C par défaut, mais d'activer l'encodage des caractères en UTF-8 en même temps. Cette option s'active en utilisation les paramètres suivants dans le fichier /etc/env.d/02locale :
Exemple de code 3.3 : Utilisation traditionnelle de la locale C tout en spécifiant l'UTF-8 |
LC_CTYPE=fr_FR.UTF-8 |
En utilisant les extraits ci-dessus, les utilisateurs seront en mesure de voir les noms de fichiers correctement, sans être forcés d'utiliser la langue du système.
Pour que les programmes qui supportent des messages localisés les utilisent, il vous faudra probablement compiler ces programmes avec le paramètre USE nls (Native Language Support, ou support natif de la langue). La plupart des programmes utilisant le nls utilisent également les bibliothèques gettext pour extraire et utiliser les messages de localisation. Évidemment, Portage les installera automatiquement si elles sont nécessaires.
Lorsque vous avez défini la bonne langue, mettez à jour vos variables d'environnement afin que votre système soit au courant des changements :
Exemple de code 3.4 : Mettre à jour l'environnement |
(Pour la locale système par défaut :) # env-update && source /etc/profile (Pour une locale utilisateur: $ source ~/.bashrc |
Ensuite, tuez votre serveur X en pressant les touches Ctrl-Alt-Backspace, déconnectez-vous, puis connectez-vous.
Vérifiez maintenant que les modifications ont fait effet :
Exemple de code 3.5 : Vérification des langues de l'environnement |
$ locale
|
La variable LINGUAS permet également de spécifier les langues que vous voulez voir supportées. Les fichiers de localisation correspondants seront installés pour certains paquets tels que kde-base/kde-i18n et app-office/openoffice. La variable LINGUAS doit contenir la liste des codes des langues à supporter, séparés par des espaces. Il est conseillé de la définir dans le fichier /etc/make.conf.
Exemple de code 3.6 : Définition de la variable LINGUAS dans make.conf |
# nano -w /etc/make.conf (Ajouter la variable LINGUAS. L'exemple suivant sélectionne le français, le danois et l'anglais) LINGUAS="fr da en" |
Générer une nouvelle définition de zone
Si votre « locale » n'est pas disponible, vous pouvez créer une nouvelle définition avec la commande localedef. Par exemple :
Exemple de code 3.7 : Générer une nouvelle « locale » |
# localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15
|
Une fois générée, vous pouvez utiliser votre nouvelle définition de zone comme valeur de la variable d'environnement LANG. fit.
Exemple de code 3.8 : Définir la variable d'environnement LANG |
# export LANG="en_US.ISO-8859-15"
|
Mettez à jour l'environnement pour prendre en compte les modifications :
Exemple de code 3.9 : Mettre à jour l'environnement |
# env-update && source /etc/profile
|
Enfin, tuez votre serveur X en pressant les touches Ctrl-Alt-Backspace, déconnectez-vous, puis connectez-vous.
Générer des « locales » de glibc
Vous n'utiliserez probablement qu'une ou deux « locales » sur votre système. Vous pouvez définir les zones qui vous intéressent dans le fichier /etc/locale.gen.
Exemple de code 3.10 : Exemple de /etc/locale.gen |
en_US ISO-8859-1 en_US.UTF-8 UTF-8 fr_FR ISO-8859-1 fr_FR@euro ISO-8859-15 |
Ensuite, exécutez la commande locale-gen pour créer les locales que vous venez de définir.
Note : locale-gen est disponible à partir la glibc glibc-2.3.6-r4. Si vous utilisez une ancienne version, il est recommandé de faire une mise à jour. |
Vous pouvez utiliser la commande locale -a pour afficher la liste des locales disponibles sur votre système.
4. Configuration du clavier pour la console
La disposition du clavier utilisée par la console est définie dans /etc/conf.d/keymaps par la variable KEYMAP. Les valeurs valides peuvent être trouvées dans /usr/share/keymaps/{arch}/. i386 a plusieurs subdivisions dans les dispositions (qwerty/, azerty/, etc.) Quelques langages ont de multiples options, donc vous pouvez expérimenter afin de décider lequel vous correspond le mieux.
Exemple de code 4.1 : Configuration du clavier pour la console |
KEYMAP="fr" KEYMAP="fr-latin0" KEYMAP="fr-latin1" |
5. Disposition du clavier pour le serveur X
La disposition du clavier à utiliser avec le serveur X est spécifiée dans /etc/X11/xorg.conf par l'option XkbLayout.
Exemple de code 5.1 : Configuration du clavier sous X |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "fr"
# Option "XkbModel" "pc105" ## pour les claviers internationaux
# Option "XkbVariant" "nodeadkeys" ## pourrait être utilisé par xterm
...
|
Si vous possédez un clavier international, vous devriez spécifier XkbModel à pc102 ou pc105, car cela permettra l'utilisation des touches supplémentaires spécifiques à votre clavier.
Les touches mortes sont des touches qui attendent que vous pressiez une autre touche pour produire un nouveau caractère tel que â, ê, ï, etc. En mettant XkbVariant à nodeadkeys, vous pourrez taper ces caractères spéciaux dans un terminal X.
Si vous comptez basculer d'une configuration de clavier à une autre (par exemple française et anglaise), vous n'avez qu'à ajouter quelques lignes à xorg.conf pour spécifier les dispositions de clavier et le raccourci à utiliser pour basculer de l'une à l'autre.
Exemple de code 5.2 : Basculer entre deux disposition de clavier |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "fr,us"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
|
Ici, XkbOptions permet de basculer la disposition de clavier simplement en tapant Alt-Shift. Cela allumera ou éteindra également la LED « Arrêt défil » grâce à l'option grp_led:scroll, une petite astuce pour savoir rapidement dans quelle configuration vous vous trouvez.
Pour KDE, vous devez installer le paquet kde-base/kde-i18n qui reconnaît la variable d'environnement LINGUAS définie ci-dessus :
7. Le symbole Euro pour la console
Pour afficher le symbole Euro dans la console, vous devez associer CONSOLEFONT dans /etc/conf.d/consolefont à un fichier correspondant dans /usr/share/consolefonts/ (en omettant le .psfu.gz). lat9w-16 inclut le symbole Euro.
Exemple de code 7.1 : Configurer la police de la console |
CONSOLEFONT="lat9w-16" |
Vous devez vérifier que le service consolefont soit présent dans le niveau d'exécution boot :
Exemple de code 7.2 : Vérification du niveau d'exécution du service consolefont |
# rc-update -v show | grep -i consolefont
|
Si aucun niveau d'exécution n'est affiché pour consolefont, alors ajoutez-le vous-même :
Exemple de code 7.3 : Ajouter consolefont au démarrage |
# rc-update add consolefont boot
|
Pour la plupart des applications
Obtenir l'affichage correct du symbole Euro sous X est un petit peu plus compliqué. La première chose à faire est de changer les définitions fixed et variable dans /usr/share/fonts/misc/fonts.alias afin qu'elles se terminent par iso8859-15 et non iso8859-1.
Exemple de code 8.1 : Configuration des polices par défaut sous X |
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 |
Quelques applications utilisent leurs propres polices et vous devrez les configurer séparément pour utiliser ces polices avec le symbole Euro. Vous pouvez le faire au niveau utilisateur dans .Xdefaults (vous pouvez copier ce fichier dans /etc/skel/ afin qu'il soit utilisé par les nouveaux utilisateurs), ou bien au niveau global pour toutes les applications avec un fichier de ressources dans /usr/share/X11/app-defaults/ (comme xterm). Dans ces fichiers, vous pouvez généralement changer une ligne existante, au lieu d'en ajouter une. Pour changer la police de xterm, par exemple :
Exemple de code 8.2 : Configurer la police de xterm |
(dans votre répertoire personnel) $ echo 'XTerm*font: fixed' >> .Xresources $ xrdb -merge .Xresources |
Pour utiliser le symbole Euro dans (X)Emacs, ajoutez les lignes suivantes à .Xdefaults :
Exemple de code 8.3 : Configurer la police pour emacs |
Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15 |
Pour XEmacs (et non pas Emacs texte), vous devez en faire un peu plus. Dans /home/user/.xemacs/init.el, ajoutez :
Exemple de code 8.4 : Configurer la police pour xemacs |
(define-key global-map '(EuroSign) '[€]) |
Note : Le symbole entre les [] est celui de l'Euro. |
Les versions actuelles de app-office/openoffice et app-office/openoffice-bin supporte la variable LINGUAS pour installer le support des langues choisies. Veuillez consulter le site officiel d'OpenOffice.Org pour connaître le statut de la langue souhaitée.
Ce document est protégé par la licence Creative Commons : Paternité - Partage des Conditions Initiales à l'Identique 2.5.