[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ suivant ]


Debian Euro HOWTO (Obsolete Documentation)
Chapitre 3 - Configurer le support de l'euro


3.1 Considérations initiales

Configurer le support de l'euro sur un système implique deux étapes assez simples :

Les mécanismes recommandés dans la zone euro pour la génération du symbole euro sur des claviers modernes sont la combinaison AltGr+e pour l'euro et AltGr+c pour le centime. Note : Les utilisateurs d'ordinateurs portables n'ont peut être pas AltGr.

Ce document abordera la configuration de l'euro sous Debian, en commençant, par les problèmes de localisation et comment la localisation peut être correctement effectuée sous Debian. Ensuite, on verra comment configurer les consoles (terminaux virtuels) disponibles sur tous les systèmes Debian GNU/Linux. Beaucoup d'utilisateurs peuvent passer cette section et aller directement à la prochaine, qui parle de la configuration adéquate de l'environnement graphique (X Window) pour le support de l'euro.

Même si parfois cela peut induire en erreur le lecteur, les différentes solutions de configuration sont valables pour l'ancienne version de Debian (à ce jour, debian 2.2 nom de code « potato ») et la dernière version (Debian 3.0 nom de code « woody »). Les versions futures de ce document devraient séparer les informations entre les différentes versions de Debian (quand cela deviendra vraiment le désordre :)


3.2 Édition de la localisation

Les programmes utilisent l'environnement de localisation afin de connaître et la langue et le jeu de caractères utilisés. Actuellement il n'y aucune séparation, entre la locale et la représentation sauf si vous utilisez UTF-8. Les locales d'environnement utilisent les deux langues par exemple :

     es_ES.ISO-8859-1
     en_US.utf
     ....

Pour Debian, les définitions des locales sont stockées dans /etc/locale.alias et /usr/X11R6/lib/X11/locale/locale.alias pour la bibliothèque libc. Pour indiquer quel jeu de caractères vous utilisez, vous devez définir la variable d'environnement LANG. Une des solutions pour faire ce changement est de changer /etc/environment ou /etc/profile.

Néanmoins, il y a un problème à cause de la représentation différente des locales sous XFree86 (Xlib) et glibc (l'une utilise ISO8859 et l'autre ISO-8859, notez le tiret). Ainsi, fixer la locale en XX_XX.ISO-8859-15 dans /etc/environment causera des problèmes en environnement X (la locale pourrait ne pas être reconnue ou créer des erreurs dans les applications).

Depuis la Debian 3.0, les alias XX_XX@euro sont donnés dans /usr/X11R6/lib/X11/locale/locale.alias et dans /etc/locale.alias ; les utilisateurs souhaitant définir leur locale d'environnement devraient utiliser cette abbréviation au lieu des XX_XX@ISO-...  précédents.

Vous pouvez voir votre environnement courant en lançant locale, et votre jeu de caractères actuel en utilisant locale charmap. Afin de changer votre locale modifiez /etc/environment ou /etc/profile et ajoutez (l'exemple est pour l'espagnol, adaptez si nécessaire) :

     export LANG=es_ES@euro
     export LC_ALL=es_ES@euro

Note : Vous devez utiliser la partie @euro. Sinon, si vous utilisez seulement es_ES la définition de la locale sera le jeu de caractères ISO-8859-1.

Veuillez, notez que les définitions de LANG et de LC_ALL doivent être similaires (ou alors mieux la même). Sinon les bibliothèques pourraient avertir de l'incompatibilité des locales. Vous verrez des avertissements si, par exemple, vous définissez :

     export LANG=spanish
     export LC_ALL=es_ES@euro

Puisque « spanish » est un alias de es_ES.ISO-8859-1 et es_ES@euro est un alias de es_ES.ISO-8859-15. Soyez attentif avec cette action puisque certains programmes ne vérifient pas le fichier locale.aliases et utilisent une valeur spécifique. Ce n'est pas recommandé de changer locale.alias pour avoir, par exemple, « spanish » en alias de es_ES.ISO-8859-15 puisque le programmes qui utilisent cette méthode ne fonctionneront pas correctement. Si votre logiciel favori ne fonctionne pas avec 'XX_XX@euro' veuillez envoyez un rapport de bogue.

Vous pouvez vérifier quelles sont toutes les locales disponibles en éxécutant locale -a

Pour les programmes qui donnent trop d'avertissements concernant le résultat de la localisation/représentation est semblable à :

     Gdk-WARNING **: locale not supported by C library

ou

     Warning: locale not supported by C library, locale unchanged

utilisez LANG=XX_XX.ISO-8859-1 programmes pour les exécuter et supprimer les erreurs/avertissements. En tout cas, vérifiez que vous avez correctement défini votre locale et, dans l'affirmative, remplissez un rapport de bogue pour le paquet concerné.

Pour que votre environnement X fonctionne, il doit y avoir une définition de iso8859-15 dans /usr/X11R6/lib/X11/locale. Si vous n'avez pas correctement configuré les locales, X devrait vous avertir (avant de démarer un programme). Veuilez votre fichier ~/.xsession-errors parce que cela devrait arriver sans que l'utilisateur soit averti dans les environnements de bureaux récents (toutes les erreurs sont redirigées et n'apparaissent pas à l'écran). Un extrait de l'avertissement serait :

     Warning: locale not supported by Xlib, locale set to C

3.2.1 Les locales sous Debian 3.0

Pour que vos locales fonctionnent sous 3.0, l'administrateur doit configurer correctement la localisation du système. La façon la plus simple de faire ces modifications est d'appeler dpkg-reconfigure -plow locales, et de choisir votre locale dans la version avec un @euro ajouté.

Vous pouvez aussi modifier directement /etc/locale.gen, en insérant les définitions des locales euro et puis en lançant locale-gen. Si vos locales sont déjà définies mais avec un signe #, décommentez (effacez ce signe) les lignes nécessaires pour la locale de l'utilisateur. Principalement les lignes XX_XX.ISO-8859-15 et les lignes XX_XX@euro et lancez locale-gen. Cela devrait créer /usr/lib/locale/XX_XX@euro.


3.2.2 Les locales sous Debian 2.2

Vous ne pouvez pas modifier /etc/locale.gen si vous utilisez Debian 2.2 parce qu'il n'existe pas. Mais, dans certains cas, vous n'avez pas besoin de le faire puisque toutes les locales sont incluses par défaut sous Debian. Pourtant, Debian 2.2 locales (version 2.1.3-13) ne contient pas la définition de l'euro. Si une mise à niveau des locales de Woody (3.0) n'est pas possible (cette mise à jour va probablement changer la version de libc), vous devez faire les changements manuellement.

Sous Debian 2.2, les utilisateurs ont besoin de changer quelques fichiers (ces changements ne sont pas nécessaires sous 3.0 puisqu'ils ont déjà été fait). En supposant un environnement espagnol (locale es_ES), le changement pour /etc/locale.alias est :

     es_ES@euro	es_ES.ISO-8859-15

et pour /usr/X11R6/lib/X11/locale/locale.alias est :

     es_ES@euro	es_ES.ISO8859-15

Après avoir fait cela vous devez générer vos locales Vous pouvez le faire en lançant manuellement localedef. Les fichiers de jeu de caractères sont dans /usr/share/i18n/charmaps, les fichiers de locales peuvent être trouvé dans /usr/share/i18n/locales. Afin de créer, par exemple, une locale en_US.ISO-8859-15, vous devrez faire cela :

     $ localedef --force -i /usr/share/i18n/locales/en_US \
                -f /usr/share/i18n/charmaps/ISO-8859-15 \
                 en_US.ISO-8859-15

Vous pouvez aussi utiliser une version simplifiée puisque localedef devrait être capable de trouver les jeux de caractères et les locales lui-même :

     $ localedef --force -v -i en_US -f ISO-8859-15 en_US.ISO-8859-15

Le répertoire créé est appelé /usr/share/locale/en_US.iso885915. Vous devez aussi créer le répertoire en_US.ISO-8859-15  faites-le en créant un lien symbolique vers le précédent.

     $ cd /usr/share/locale
     $ ln -s en_US.ISO-8859-15 en_US.iso885915

3.3 Configurer la console

Configurer la console afin d'avoir le symoble euro est simple. Ce qui suit fonctionnera sur un système Debian GNU/Linux :

     $ loadkeys euro.inc
     $ consolechars -f lat0-16.psf

Toutefois, ces changements sont perdus après un redémarrage. Afin qu'ils deviennent permanents, quelques changements doivent être faits aux fichiers de configurations des paquets Debian.


3.3.1 Configurer le clavier de la console

Changer la carte clavier implique de changer /etc/console-tools/default.map.gz ou /etc/kbd/default.map.gz. Habituellement, cette carte clavier est changée en utilisant kbdconfig (si vous n'utilisez pas console-tools regardez en dessous pour les différents systèmes clavier console sous Debian) ; puisque elle est chargée avant que le système de fichier réseau ne soit monté, vous ne pouvez pas le changer directement (par exemple en ajoutant include euro ici), les extensions ne pouvant pas être chargées (puisqu'elles sont localisées dans /usr/share/keymaps). Afin d'avoir le support de l'euro, si votre carte clavier ne l'a pas vous devrez en modifier une déjà existante. Voici un exemple qui montre comment changer la carte clavier espagnole pour supporter le caractère euro (kbdconfig posera quelques questions, seules les réponses sont affichées ci-dessous) :

     $ cd /usr/share/keymaps/i386/qwerty
     $ cp es.kmap.gz es-euro.kmap.gz
     $ gzip -d es-euro.kmap.gz
     $ echo "include \"euro\"" >>es-euro.kmap
     $ echo "altgr keycode  46 = cent" >>es-euro.kmap
     $ gzip es-euro.kmap
     $ kbdconfig
     -----REPONSES:
     n
     i386
     qwerty
     es-euro
     y
     y
     $ zgrep "keycode  18" /etc/console-tools/default.kmap.gz
     keycode  18 = +e                +E                currency         Control_e
         Control_e        Meta_e           Meta_E           Meta_Control_e

FIXME : Un bogue devrait être ouvert contre console-data pour inclure ceci par défaut dans toutes les langues de la zone euro.


3.3.2 Comment le clavier est-il chargé sous Debian ?

Le paquet console-common sous Debian 3.0 installe /etc/init.d/keymap.sh qui lance loadkeys de console-tools (en utilisant /etc/console-tools/default.map.gz) ou kbd (en utilisant /etc/console/boottime.kmap.gz). Ce fichier a été créé en utilisant /usr/sbin/install-keymap.

Quand un système démarre il lance /etc/rcS.d/S05keymap.sh (pour kbd) ou /etc/rcS.d/S05keymap-lct.sh (pour console-tools) qui installe la carte clavier adéquate. Les deux scripts feront soit /etc/init.d/keymap.sh soit /etc/init.d/S05keymap-lct.sh étant appelés avec l'option « start ».


3.3.3 Configurer les polices de la console

La façon la plus simple pour configurer une console sur un système Debian est d'installer le paquet fonty inclus depuis Debian 2.2 et dites lui d'utiliser les polices iso15 (fonty actuellement ne supporte pas encore iso-8859-16). Ces polices incluront le caractère euro et le paquet configurera convenablement les fichiers de configuration requis. Vous aurez besoin, néanmoins, de configurer la carte clavier, comme décrit ci-dessus.

Si vous ne voulez pas (ou n'aimez pas) le paquet fonty, vous pouvez configurer les polices de la console vous-même. Pour que les polices soit chargées automatiquement quand le système est démarré, vous (en tant que root) devez changer quelques fichiers de configuration.

Si le sytème utilise le paquet console-tools, alors le fichier /etc/console-tools/config sera présent. Afin de charger la police adéquate, vous aurez besoin d'inclure la ligne :

     SCREEN_FONT=lat0-16
     APP_CHARSET_MAP=iso15

Si vous utilisez le paquet kbd vous aurez besoin de modifier le ficher /etc/kbd/config en ajoutant, par exemple :

     CONSOLE_FONT=lat0-16.psfu.gz
     # CONSOLE_MAP=iso15
     CONSOLE_MAP=8859-15_to_uni

Bien sûr, la police lat0-16 n'est pas la seule disponible, depuis le paquet console-data version 1999.08.29-11.1, il y a un bon nombre de polices latin9 (cf. latin0) disponibles dans /usr/share/consolefonts. D'autres personnes préfèrent la police lat0-sun16, c'est juste une histoire de goût.

Si vous utilisez le paquet svgatextmode (obsolète depuis l'existence de framebuffer) vous pourriez configurer le police de la console aussi en changeant le fichier /etc/TextConfig.

NOTE : Si vous utilisez le périphérique framebuffer pour la console texte, lisez la note qui concerne la configuration de console-tools dans le fichier /etc/console-tools/config. À la base, la définition globale ne devrait fonctionner que pour le premier terminal virtuel, vous avez besoin de déclarer explicitement la police pour les autres terminaux comme ceci :

     SCREEN_FONT_vc1=lat0-16
     SCREEN_FONT_vc2=lat0-16
     SCREEN_FONT_vc3=lat0-16
     ....

3.4 Configurer X11

Pour que l'environnement graphique puisse aussi représenter l'euro vous avez besoin de :

XFree86 inclut des polices prêtes pour l'euro depuis la version 3.3.3.1, comme, par exemple 7x13euro.bdf ou 7x13euroB.bdf. Toutefois, l'utilisateur ne devrait pas les avoir d'installées puisque les polices ISO-8859-15 ne font pas parti de l'installation par défaut d'XFree86.

Debian 3.0 fournit aussi des configurations clavier adéquates pour la plupart de lagages. Cependant, certains langages ne contiennent pas un support de l'euro complet à cause de keycode n'étant pas définis convenablement. Si votre language ne se comporte pas correctement sous X, veuillez soumettre un rapport de bogue souhait (Ndt : « whishlist » en anglais) contre le paquet xlibs (les bogues connus relatifs à ce problème sont : #117185, #127609 et #139826)


3.4.1 Configuration du clavier

La configuration du clavier est plus simple que pour la console. Si vous utilisez les extensions Xkb dans le serveur X (par défaut depuis 3.3.5) vous pouvez la changer en utilisant l'option XkbLayout dans la section InputDevice du fichier de configuration de X. Ce fichier est localisé sous /etc/X11/XF86Config pour XFree86 3.3.6 et /etc/X11/XF86Config-4 pour XFree86 4.1.

Il y a plusieurs façons d'ajouter la définition de l'euro :

Si vous changez le modmap avec /xmodmap/ et que ça fonctionne, c'est une solution temporaire, car après avoir redémarré le serveur les changements seront perdus. Pour avoir cette définition chargée au démarrage vous devez ajouter la définition suivante dans votre Xmodmap  :

     $ xmodmap -pke > ~/.xmodmap

NOTE : Xmodmap est obsolète, veuillez utiliser les extensions Xkb. Les prochaines versions de XFree86 pourraient même ne plus supporter les définitions des utilisateurs xmodmap.

NOTE : le paramètrage des locales doivent être fait avant que ne démarre Xsession, donc assurez-vous que votre configuration est chargée correctement avant d'exécuter startx (Si vous utilisez un gestionnaire de session comme gdm vous pouvez choisir ses paramètres).

NOTE : Le symbole utilisé pour le signe euro varie d'Xfree 3.3.6 (serveur standard X sous in Debian 2.2) à Xfree 4.1 (serveur standard X sous Debian 3.0). Sous Xfree 3.3.6 vous devrez utiliser currency à la place de EuroSign comme définition du symbole. Cela a changé sous Xfree 4.1 qui à incorporé le support du caractère EuroSign. Si vous utilisé le même symbole currency sous Xfree 4.1, à cause du support de l'UTF, cela ne repésentera pas forcément correctement le caractère euro.


3.4.1.1 Xfree sous Debian 3.0

Si vous utilisez Debian Woody (3.0), qui inclut XFree86 4.1, vous avez seulement besoin de l'avoir correctement configuré dans une langue de la zone euro, Ceci est fait dans le fichier de configuration /etc/X11/XF86Config-4. L'entrée du symbole euro devrait fonctionner correctement (Si non,s'il vous plaît, faites un rapport de bogue).

Vous pouvez aussi faire quelques changements pour fournir le support de l'euro si votre système ne fonctionne pas correctement. Vous pouvez changer les extensions Xkb (dans les fichiers /etc/X11/xkb/symbols) pour inclure le support de l'Euro avec quelque chose dans le genre de :

       key <AD03> {        [                 e,    E               ],
                           [        EuroSign,      cent        ]       };

Ceci, cependant, devrait être déjà fourni dans tous les fichiers des langues de la zone euro (es, de...)

Ou, vous pouvez changer votre définition de Xmodmap avec :

     $ echo "keycode 0x1A = e  E EuroSign cent" | xmodmap -

Si vous n'utilisez pas les extensions Xkb vous devrez changer les définitions disponibles dans le répertoire /usr/share/xmodmap/ (le nom du fichier est xmodmap.XXX avec un XXX adéquat à votre langue).

Puisque les extensions Xkb est le comportement par défaut, les fichiers Xmodmap fournis par Xfree86 4.1 ne devraient pas être mis à jour correctement. Vérifiez si la ligne relative à keycode 26 (caractère E) ressemble à la ligne suivante :

     keycode  26 = e E EuroSign cent

3.4.1.2 Xfree sous Debian 2.2

Si vous utilisez des versions égales à, ou antérieures à la Debian potato (2.2), la langue ne devrait pas être définie correctement. Si une mise à jour vers une version supérieur d'XFree86 est impossible, vous pouvez utiliser n'importe quelle approche précédente pour ajouter le support pour la définition de l'euro.

Vous pouvez changer les extensions Xkb (/usr/X11R6/lib/X11/xkb/symbols) pour inclure le support currency avec des lignes du genre de

       key <AD03> {        [                 e,    E               ],
                           [        currency,      cent        ]       };

Ou, vous pouvez changez votre définition d'Xmodmap avec :

     $ echo "keycode 0x1A = e  E currency cent" | xmodmap -

Vous pouvez aussi utiliser les définitions disponibles dans le répertoire /usr/share/xmodmap/ (changez le fichier approprié à votre langage) si vous n'utilisez pas les extensions. Vérifiez que la ligne relative au keycode 26 (caractère E) ressemble à la ligne suivante :

     keycode  26 = e E currency cent

Les définitions Xmodmap de Debian 2.2 pour les langues dans la zone euro contiennent le caractère euro (en utilisant le symbole currency), Donc vous pouvez utiliser le xmodmap suivant /usr/share/xmodmap/xmodmap.XX (XX est le langage que vous voulez utiliser).


3.4.2 Configuration des polices

Pour représenter le symbole euro sous X vous aurez besoin d'avoir les polices adéquates pour représenter le codage ISO-8859-15 (si vous n'utilisez pas UTF-8). Vous pouvez voir quelles polices pourront être utilisées pour ça en faisant :

     $ xlsfonts | grep 'iso8859-15$'

Dans une installation Debian par défaut, la seule police qui fournit cet encodage est la police fixed (misc), qui devrait être adéquate pour un xterm mais pourrait ne pas se montrer agréable dans beaucoup d'autres applications. Si bien que, Debian 3.0 (woody) fournit les paquets de polices transcoded qui incluent d'autres polices ISO-8859-15. Les paquets sont xfonts-base-transcoded, xfonts-75dpi-transcoded, xfonts-100dpi-transcoded et vous pouvez les installer en lançant apt-get install 'xfonts.*transcoded'.

Certaines personne pourraient ne pas vouloir installer ces paquets parce qu'ils sont assez gros, à peu près 15 Mo. Il y a une version plus légère disponible, sans les polices non-15, qui fait moins de 3 Mo. Vous pouvez le trouver ici http://sites.inka.de/W1752/reduced-xfonts/. Notez qu'il ne fait pas partie de la distribution standard de Debian.

(FIXME : Si les utilisateurs en ont vraiment besoin, les paquets transcoded pourront être coupés en deux.)


3.4.2.1 Potato, XFree86 3.X

Veuillez noter que si vous utilisez Debian 2.2 vous ne pouvez installer ces paquets sans mettre à jour le système puisqu'ils dépendent d'XFree86 4.

Les paquets suivants fournissent aussi des polices ISO-8859-15 : xfonts-jmk, xfonts-arphic-bsmi00lp, xfonts-arphic-gbsn00lp, xfonts-arphic-bkai00mp et xfonts-arphic-gkai00mp.

Le paquet xfonts-cyrillic fournit aussi (pour XFree86 3.3.6) quelques polices ISO-8859-15.

FIXME : Vérifiez cette dernière phrase (qui semble être juste vus les fichiers de données que les utilisateurs du programme euro-test m'ont envoyés.)

NOTE : Soyez sûr que vous n'avez pas une définition par défaut d'une autre police dans votre fichier .Xdefaults. Par exemple avec

     *VT100.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-16

Si vous ne parvenez pas à trouver de polices convenables, vous pouvez utiliser les polices ISO10646-1 qui sont un super-jeu des différentes polices ISO8859-X et sont aussi fournies sous Debian. Markus Kuhn fournit un script appelé ucs2any.pl et qui propose :

             Ce script Perl vous permet de générer à partir d'une police BDF
     	ISO10646-1 d'autres polices BDF dans n'importe quel encodage possible.
             Cette fois vous pouvez dériver d'une simple police principale ISO10646-1
     	tout un jeu de polices 8-bit dans tous les encodages ISO 8859 et divers
     	autres.

Il y a des polices Unicode disponibles pour X Window sur http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html. Dans ucs-fonts.tar.gz et ucs-fonts-75dpi100dpi.tar.gz, il y a Times, Helvetica, Lucida, Utopia, New Century, Schoolbook, Courier... polices pouvant être utilisées. Vous pouvez aussi utiliser le programme yudit pour changer ces polices.

Il y a des paquets Debian disponibles pour installer les polices unicode de Kuhn. FIXME : Quels sont leurs noms ?

Il y a d'autres polices ISO-8859-15 utilisables pour XFree86 3.3.6 sur http://linux.ee/~ville/vh-fonts-0.99.2.tar.gz, même si elles sont fournies principalement pour les utilisateurs Estoniens ce sont des polices correctes et elles incluent des modifications de helvetica, times, courier et une police pour terminal.


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ suivant ]


Debian Euro HOWTO (Obsolete Documentation)

version 1.2, 4 juin 2003.

Javier Fernández-Sanguino Peña mailto:jfs@computer.org
Traduction de Julien Louis mailto:leonptitlouis@ifrance.com