Gentoo Logo

Utiliser l'UTF-8 avec Gentoo

Table des matières :

1.  Encoder les caractères

Qu'est-ce que l'encodage de caractère ?

Les ordinateurs ne comprennent pas le texte en soi. En fait, chaque caractère est représenté par un nombre. Traditionnellement, chaque jeu de nombres utilisé pour représenter un alphabet et des caractères (appelé un système de codage ou encore un jeu d'encodage ou de caractères) est limité par la taille à cause de la limitation matérielle de la machine.

L'histoire de l'encodage des caractères

Le jeu de caractères le plus commun, ou du moins le plus universellement accepté, est l'ASCII (American Standard Code for Information Interchange). Il est universellement reconnu comme étant le standard le plus abouti pour les logiciels. La version moderne de l'ASCII a été standardisée en 1986 (ANSI X3.4, RFC20, ISO/IEC 646:1991, ECMA-6) par l'institut national américain des standards.

L'ASCII est du 7-bit strict, ce qui signifie qu'il utilise une table de correspondance entre les caractères et des nombres binaires à 7 chiffres, ce qui donne un échantillon de 0 à 127, en décimal. Cela inclut 32 caractères de contrôle non visibles aux positions de 0 à 31, ainsi que le caractère Suppr à la position 127. Les caractères de 32 à 126 sont des caractères visibles : un espace, un signe de ponctuation, des lettres latines ou des nombres.

Le huitième bit en ASCII a été utilisé au départ comme un bit de parité pour permettre des vérifications d'erreur. S'il n'est pas nécessaire, il est laissé à 0. Cela qui signifie que, en ASCII, chaque caractère est représenté par un seul octet.

Si l'ASCII suffit aux conversations en anglais moderne, dans d'autres langues européennes qui incluent des caractères accentués, les choses ne semblent pas aussi évidentes. Les standards ISO 8859 ont été développés pour répondre à ces besoins. Ils assurent une compatibilité ascendante avec l'ASCII, mais au lieu de laisser le huitième bit à 0, il est utilisé pour permettre de coder 127 autres caractères dans chaque encodage. Les limitations de l'ISO 8859 vont vite être mises à jour et il y a actuellement quinze variantes du standard ISO 8859 (depuis le 8859-1 jusqu'au 8859-15). Il y a souvent des conflits entre les lettres qui peuvent être représentées par un octet, malgré la compatibilité avec l'ASCII. Pour compliquer encore l'interopérabilité entre les différents encodages de caractères, Windows-1252 est utilisé dans certaines versions de Microsoft Windows pour certaines langues d'Europe occidentale. C'est un jeu dérivant de l'ISO 8859-1, mais avec de nombreuses différences. Ces jeux gardent cependant tous une compatibilité avec l'ASCII.

La nécessité du développement d'un encodage complètement différent, pour des alphabets non latins, comme l'EUC (Extended Unix Coding), qui est utilisé pour le japonais et le coréen (et également un peu pour le chinois), a créé plus de confusion encore. Différents systèmes d'exploitation utilisaient encore différents jeux de caractère pour une même langue, par exemple Shift-JIS et ISO-2022-JP. Les utilisateurs voulant lire des glyphes cyrilliques devaient choisir entre les jeux KOI8-R pour le russe ou le bulgare ou KOI8-U pour l'ukrainien. Ou encore d'autres encodages du cyrillique, comme l'ISO 8859-5, lequel n'a pas eu beaucoup de succès, ou le jeu Windows-1251. Tous ces jeux de caractères cassent souvent la compatibilité avec l'ASCII (même si l'emplacement des caractères cyrilliques dans le KOI8 permet, si on s'affranchit du huitième bit, d'assurer une possible lecture du texte sur un terminal ASCII, moyennant quelques adaptations).

Tout cela mène à une certaine confusion, mais aussi une incapacité totale de communiquer entre les langues et, tout particulièrement, entre différents alphabets. C'est alors qu'est arrivé l'Unicode.

Qu'est-ce que l'Unicode ?

L'Unicode laisse de côté la représentation traditionnelle et limitée d'un octet pour un caractère. Il utilise 17 « plans » de 65536 éléments, permettant ainsi de décrire un maximum de 1114112 caractères. Le premier plan nommé BMP (pour Basic Multilingual Plane, ou plan multi-langue de base) contient presque tous les caractères que vous pourriez utiliser. C'est pour ça que beaucoup croient à tort que l'Unicode est un jeu de caractères 16-bits.

L'Unicode a été représenté de différentes manières, mais les deux plus communes sont l'UTF (Unicode Transformation Format) et l'UCS (Universal Character Set). Après le terme UTF, suit un nombre indiquant le nombre de bits dans une unité. Dans le cas de l'UCS, il représente le nombre d'octets. L'UTF-8 est devenu le moyen d'échange le plus répandu pour les échanges de texte en Unicode, grâce à ses propriétés (clair, représenté par 8 bits) et il est l'encodage dont fait l'objet notre document.

UTF-8

UTF-8 est un encodage de caractère à longueur variable et peut utiliser entre 1 et 4 octets par symbole. Le premier octet est utilisé pour encoder les symboles ASCII, ce qui permet une compatibilité complète avec l'ASCII. Les caractères latins et ASCII sont interchangeables avec l'UTF-8 sans trop augmenter la taille des données, puisque seul le premier octet est utilisé. Les utilisateurs d'alphabets exotiques comme le japonais n'ont pas cette chance, dans la mesure où ils obtiendront en gros 50% de redondance dans leurs données.

Ce qu'UTF-8 peut faire pour vous

UTF-8 vous permet de travailler dans un environnement multilingue conforme aux standards et universellement reconnu, avec une redondance de donnée relativement faible. L'UTF-8 est le meilleur moyen de transmettre des caractères non-ASCII sur Internet, par courrier électronique, IRC ou la plupart des autres moyens de communication. Malgré cela, de nombreuses personnes considèrent comme abusive l'utilisation de l'UTF-8 pour les communications. Il est toujours préférable de se tenir au courant de l'attitude des uns et des autres à propos de l'UTF-8 sur certains canaux de discussion, listes de diffusion ou groupes de discussion avant d'utiliser de l'UTF-8 non-ASCII.

2.  Mise en place de l'UTF-8 avec Gentoo Linux

Trouver ou créer les localisations UTF-8

Maintenant que vous avez compris les principes de base de l'Unicode, vous allez pouvoir commencer à utiliser l'UTF-8 sur votre système.

Il vous faudra avant toute chose disposer d'une version de glibc qui supporte les langues nationales. Le moyen recommandé pour l'obtenir est d'utiliser le fichier /etc/locale.gen. L'objet de ce document n'est pas de vous expliquer l'utilisation de ce fichier. Vous trouverez de la documentation dans le Guide de localisation de Gentoo Linux.

Ensuite, vous devrez vérifier si oui ou non UTF-8 est déjà disponible pour votre langue ou si vous devrez créer une localisation.

Exemple de code 2.1 : Vérifier l'existence d'une localisation pour UTF-8

(Remplacer « fr_FR » par la localisation souhaitée.)
# locale -a | grep 'fr_FR'
fr_FR
fr_FR.UTF-8

Nous constatons ici que nous avons un suffixe en .UTF-8, ce qui est une bonne chose. Si vous n'avez pas de résultat avec un suffixe similaire à celui-ci vous devez créer une localisation compatible UTF-8.

Note : Il vous suffit de lancer la commande suivante si vous n'avez pas de localisation UTF-8 pour votre langue.

Exemple de code 2.2 : Créer une localisation UTF-8

(Remplacer « fr_FR » avec la localisation désirée.)
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8

Une autre façon d'ajouter une localisation UTF-8 est de l'ajouter au fichier /etc/locale.gen et de regénérer les localisations nécessaires avec la commande locale-gen.

Exemple de code 2.3 : Exemple de /etc/locale.gen

fr_FR.UTF-8 UTF-8

Mise en place de la localisation

Vous devez configurer une variable d'environnement pour pouvoir utiliser vos nouvelles localisations UTF-8 : LC_CTYPE (ou facultativement LANG si vous voulez changer le langage du système aussi). Il existe plusieurs manières différentes de la configurer. Certains préfèrent n'avoir un environnement UTF-8 que pour un utilisateur spécifique. Dans ce cas, il faudra la configurer dans le fichier ~/.profile (si vous utilisez /bin/sh), ~/.bash_profile ou ~/.bashrc (si vous utilisez /bin/bash). Vous trouverez plus de détails et des bonnes pratiques dans notre guide de localisation.

D'autres préféreront configurer la localisation de manière globale. Un cas pour lequel vous devrez probablement agir ainsi est si vous utilisez /etc/init.d/xdm. En effet, ce script d'initialisation démarre un gestionnaire d'affichage et un bureau avant que les fichiers d'initialisation des terminaux ne soient exécutés.

Note : Pour configurer de manière globale la localisation, il vous faut éditer le fichier /etc/env.d/02locale qui doit alors contenir les lignes suivantes :

Exemple de code 2.4 : /etc/env.d/02locale

LANG="fr_FR.UTF-8"

Note : Vous pouvez également mettre LC_CTYPE à la place de LANG. Pour plus d'informations sur les catégories affectées par la variable LC_CTYPE, lisez la documentation GNU sur la localisation.

Il vous faut maintenant mettre à jour l'environnement pour valider la modification.

Exemple de code 2.5 : Mise à jour de l'environnement

# env-update
>>> Regenerating /etc/ld.so.cache...
 * Caching service dependencies ...
# source /etc/profile

Maintenant, lancez la commande locale sans argument pour voir si les variables sont correctement initialisées sur votre environnement :

Exemple de code 2.6 : Vérifier la nouvelle localisation

# locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

C'est tout. Vous utilisez maintenant une localisation UTF-8. La prochaine étape est la configuration des applications que vous utilisez quotidiennement.

3.  Support des applications

Quand l'Unicode a commencé à prendre de l'ampleur dans le monde logiciel, les jeux de caractères à plusieurs octets n'étaient pas très bien supportés par des langages comme le C, langages dans lesquels de nombreux programmes utilisés quotidiennement étaient écrits. Encore maintenant, certains programmes ne sont toujours pas capables de gérer l'UTF-8 correctement. Heureusement, la plupart le sont.

Noms de fichiers, NTFS et FAT

Il y a de nombreuses options NLS (Native Language Support, pour support des langues natif) dans la configuration du noyau Linux et le plus important est de ne pas se tromper. Dans la plupart des cas, la seule chose à faire est de mettre le support NLS de l'UTF-8 dans le noyau et de changer le NLS par défaut à utf8.

Exemple de code 3.1 : Configuration du noyau pour les NLS UTF-8

File Systems -->
  Native Language Support -->
    (utf8) Default NLS Option
    <*> NLS UTF8
    (Et <*> pour les autres jeux de caractère qui sont utilisés
    dans le système de fichiers FAT et les CD-ROM Joliet)

Si vous pensez avoir à monter des partitions NTFS, vous devrez spécifier une option nls= au montage. Si vous souhaitez monter des partitions FAT, vous devrez spécifier une option codepage= au montage. Vous avez également la possibilité de préciser un codepage par défaut pour les partitions FAT dans la configuration du noyau. Remarquez que l'option codepage au montage remplace la configuration du noyau.

Exemple de code 3.2 : Configuration pour FAT dans le noyau

File Systems -->
  DOS/FAT/NT Filesystems  -->
    (437) Default codepage for fat

Vous devez éviter de définir Default iocharset for fat à UTF-8. Au lieu de cela, vous pouvez passer l'option utf8=true au montage des partitions FAT. Pour plus d'informations, lisez man mount et la documentation du noyau dans /usr/src/linux/Documentation/filesystems/vfat.txt.

Pour changer l'encodage des noms de fichiers, vous pouvez utiliser app-text/convmv.

Exemple de code 3.3 : Exemple d'utilisation de convmv

# emerge --ask app-text/convmv
(Format de la commande :)
# convmv -f <encodageActuel> -t utf-8 <nomDeFichier>
(Remplacer iso-8859-1 par l'encodage à partir duquel vous effectuez
la conversion :)
# convmv -f iso-8859-1 -t utf-8 nomDuFichier

Pour changer le contenu des fichiers, utilisez l'utilitaire iconv proposé avec glibc :

Exemple de code 3.4 : Exemple d'utilisation d'iconv

(Change iso-8859-1 au jeu de caractère que vous souhaitez :)
(Vérifiez que la sortie est correcte.)
# iconv -f iso-8859-1 -t utf-8 nomDeFichier
(Pour convertir un fichier, vous devez en créer un nouveau :)
# iconv -f iso-8859-1 -t utf-8 nomDeFichier > nouveauFichier

Vous pouvez aussi utiliser app-text/recode pour cela.

La console système

Important : Vous devez avoir >=sys-apps/baselayout-1.11.9 pour pouvoir utiliser l'Unicode dans une console.

Pour activer l'UTF-8 en mode console, vous devez éditer le fichier /etc/rc.conf et mettre UNICODE="yes". Lisez au passage les commentaires dans ce fichier : il est important d'avoir une police de caractères qui convienne si vous souhaitez utiliser correctement l'Unicode. Assurez-vous également d'avoir bien créé une locale Unicode comme expliqué au chapitre 1.

La variable KEYMAP, définie dans le fichier /etc/conf.d/keymaps, doit spécifier une configuration clavier Unicode.

Exemple de code 3.5 : Exemple du fichier /etc/conf.d/keymaps

(Changez « fr » pour le clavier local utilisé.)
KEYMAP="fr"

Ncurses et Slang

Note : Ignorez simplement toutes les mentions de Slang dans cette section si vous ne l'avez pas installé ou si vous ne l'utilisez pas.

Il vous faut cette fois ajouter unicode à vos paramètres USE globaux dans /etc/make.conf, puis vous devez installer à nouveau sys-libs/ncurses et sys-libs/slang, si nécessaire. Portage s'en occupera automatiquement lorsque vous mettrez à jour votre système :

Exemple de code 3.6 : Mise à jour du système

# emerge --update --deep --newuse world

Nous devons également reconstruire les paquets qui leur sont liés, maintenant que les changements de la variable USE ont été appliqués. L'outil utilisé (revdep-rebuild) fait partie du paquet gentoolkit.

Exemple de code 3.7 : Reconstruire les programmes liés à ncurses ou slang

# revdep-rebuild --soname libncurses.so.5
# revdep-rebuild --soname libslang.so.1

KDE, GNOME et Xfce

Tous les environnements de bureaux importants supportent complètement l'Unicode et n'auront pas besoin de configuration supplémentaire à celle présentée dans ce guide. Cela est dû au fait que les kits d'interface graphique (Qt ou GTK2) fonctionnent très bien en UTF-8. De ce fait, tous les programmes utilisant ces kits devraient pouvoir supporter l'UTF-8 de manière naturelle, sans modification supplémentaire.

Les exceptions à cette règle sont liées à Xlib et GTK+1. GTK+1 nécessite une spécification de police iso10646-1 dans le fichier ~/.gtkrc. Par exemple, -misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1. De même, les applications utilisant Xlib ou Xaw devront utiliser une spécification de police similaire ou elles ne pourront pas fonctionner.

Note : Si vous disposez du centre de contrôle de gnome1 dans un coin, utilisez-le. Récupérez une police iso10646-1 dans le lot proposé.

Exemple de code 3.8 : Exemple de ~/.gtkrc (pour GTK+1) qui définit une police compatible avec l'Unicode

style "user-font"
{
    fontset="-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1"
}
widget_class "*" style "user-font"

Si une application dispose du support de Qt et de GTK2, la version GTK2 aura en général de meilleurs résultats que la version Qt pour l'Unicode.

X11 et les polices de caractères

Les polices TrueType supportent l'Unicode et la plupart des polices fournies avec Xorg disposent d'un très bon support des caractères, même si, évidemment, tous les glyphes disponibles dans l'Unicode n'ont pas été créés. Pour construire des polices (notamment le jeu BitStream Vera) avec le support pour les lettres d'Asie de l'Est sous X, assurez-vous d'avoir ajouté le paramètre cjk dans vos paramètres USE. De nombreuses autres applications utilisent ce paramètre, donc c'est une bonne idée de l'ajouter dans les paramètres USE permanents.

Plusieurs paquets sont également disponibles dans Portage, qui sont compatibles avec l'Unicode.

Exemple de code 3.9 : Optionnel : Installer plus de polices compatibles Unicode

# emerge terminus-font intlfonts freefonts cronyx-fonts corefonts

Gestionnaires de fenêtres et émulateurs de terminaux

Les gestionnaires de fenêtres qui ne sont pas construits avec GTK ou Qt disposent généralement d'un très bon support de l'Unicode, dans la mesure où ils utilisent souvent la bibliothèque Xft pour exploiter les polices. Si votre gestionnaire de fenêtres n'utilise pas Xft pour les polices, vous pouvez toujours utiliser la spécification de police mentionnée dans la section précédente pour utiliser une police Unicode.

Les émulateurs de terminaux utilisant Xft et supportant l'Unicode sont plus difficiles à trouver. À part Konsole et gnome-terminal, les meilleures options dans Portage sont x11-terms/rxvt-unicode, xfce-extra/terminal, gnustep-apps/terminal, x11-terms/mlterm ou x11-terms/xterm, quand il est compilé avec le paramètre USE unicode et qu'il est lancé avec uxterm. app-misc/screen supporte l'UTF-8 également, si vous le lancez avec un screen -U ou si vous mettez la ligne suivante dans votre fichier ~/.screenrc :

Exemple de code 3.10 : ~/.screenrc pour l'UTF-8

defutf8 on

Vim, Emacs, Xemacs et Nano

Vim fournit un support complet de l'UTF-8 et contient un mécanisme de reconnaissance des fichiers UTF-8. Pour plus d'informations, utilisez :help mbyte.txt dans Vim.

Emacs 22.x et ultérieurs contiennent également le support complet de l'UTF-8. Xemacs 22.x ne gère pas encore les caractères combinés.

Les versions inférieures d'Emacs ou Xemacs nécessitent l'installation des paquets app-emacs/mule-ucs ou app-xemacs/mule-ucs et l'ajout du code suivant dans votre ~/.emacs pour supporter les langues CJK en UTF-8 :

Exemple de code 3.11 : Support CJK UTF-8 dans Emacs

(require 'un-define)
(require 'jisx0213)
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)

Nano supporte l'UTF-8 depuis la version 1.3.6.

Les shells

Actuellement, bash propose un support complet de l'Unicode, grâce à la bibliothèque GNU readline. Z Shell (zsh) supporte l'Unicode via l'option USE unicode.

Le C shell, tcsh et ksh ne fournissent absolument aucun support de l'UTF-8.

Irssi

Irssi supporte complètement de l'UTF-8, même si cela nécessite que l'utilisateur active une option.

Exemple de code 3.12 : Activer l'UTF-8 dans Irssi

/set term_charset UTF-8

Pour les canaux de discussions où les caractères non-ASCII sont fréquemment utilisés dans des jeux de caractères non-UTF-8, la commande recode peut servir à convertir les caractères. Tapez /help recode pour plus d'informations.

Mutt

Le client mail Mutt supporte très bien l'Unicode. Pour utiliser l'UTF-8 avec Mutt, il n'est pas nécessaire de le configurer pour. Mutt fonctionne sans problèmes dans un environnement unicode si vos fichiers de configuration (signature comprise) sont encodés en UTF-8.

Note : Vous verrez probablement encore des « ? » quand vous lirez votre courrier avec Mutt. Cela provient des personnes dont le client de messagerie n'indique pas le codage utilisé. Vous ne pouvez pas y faire grand chose, à part leur dire de configurer leur logiciel correctement.

Plus d'informations sont disponibles sur le Wiki de Mutt.

Man

Les pages de manuel font partie intégrante d'une machine Linux. Pour vous assurer que tous les caractères Unicode s'afficheront correctement, éditez le fichier /etc/man.conf. il vous faudra remplacer une ligne, comme indiqué ci-dessous :

Exemple de code 3.13 : Modification de man.conf pour le support de l'Unicode

(Ancienne ligne :)
NROFF           /usr/bin/nroff -Tascii -c -mandoc
(À remplacer par celle-ci :)
NROFF           /usr/bin/nroff -mandoc -c

Elinks et links

Ces navigateurs Web textes sont communément utilisés, voyons comment activer leur support UTF-8. Dans elinks et links, il y a deux méthodes pour activer ce support. La première est d'utiliser le menu de configuration du navigateur, l'autre est de modifier le fichier de configuration. Pour activer cette option dans le navigateur, allez sur un site avec elinks ou links, puis faites Alt-S pour entrer dans le menu de configuration. Sélectionnez « Terminal options », descendez et sélectionnez la dernière ligne UTF-8 I/O en faisant Entrée. Ensuite, sauvez et quittez le menu. Dans links, vous devrez refaire Alt-S et taper S pour sauver. Pour la deuxième solution, voici le fichier de configuration.

Exemple de code 3.14 : Activer UTF-8 dans elinks/links

(Pour elinks, éditez le fichier /etc/elinks/elinks.conf ou bien
~/.elinks.conf et ajoutez la ligne suivante :)
set terminal.linux.utf_8_io = 1

(Pour links, éditez ~/.links/links.cfg et ajoutez la ligne suivante :)
terminal "xterm" 0 1 0 us-ascii utf-8

Samba

Samba est une suite logicielle qui implémente le protocole SMB (Server Message Block) pour les systèmes UNIX, tels que Mac OS X, Linux et FreeBSD. Ce protocole est souvent également appelé CIFS (Common Internet File System). Samba inclut aussi le système NetBIOS, utilisé par le partage de fichiers sur des réseaux Windows.

Exemple de code 3.15 : Activer UTF-8 pour Samba

(Éditer /etc/samba/smb.conf et ajouter ce qui suit dans la section [global].)
dos charset = 1255
unix charset = UTF-8
display charset = UTF-8

Tester l'ensemble

Il existe de nombreux sites de test pour l'UTF-8. net-www/w3m, net-www/links, net-www/elinks, net-www/lynx et tous les navigateurs dérivés de Mozilla (notamment Firefox) supportent l'UTF-8. Konqueror et Opera supportent également l'UTF-8.

Quand vous utilisez un navigateur en mode texte, assurez-vous que vous utilisez bien un terminal supportant l'Unicode.

Si vous voyez certains caractères affichés comme des carrés avec des lettres ou des nombres à l'intérieur, cela signifie que votre police ne dispose pas du caractère pour le symbole ou le glyphe que l'UTF-8 attend d'elle. À la place, elle affichera une boîte avec le code hexadécimal du symbole UTF-8.

Méthodes d'écriture

Note : Cette section a été enrichie par les traducteurs pour parler aussi des claviers français, mais cela concerne surtout les claviers américains qui restent fortement utilisés partout dans le monde.

Les touches mortes de votre clavier peuvent être utilisées pour écrire des caractères sous X qui ne sont pas disponibles sur votre clavier. On les obtient en appuyant en même temps sur la touche AltGr et une touche optionnelle dans la partie non alphabétique de votre clavier (à gauche de la touche Entrée). Puis, vous les relâchez et appuyez sur une lettre. La touche morte devrait la modifier. Vous disposez d'autres caractères avec la touche Shift appuyée en même temps que les touches AltGr et le modificateur.

Pour activer les touches mortes sur le serveur X, vous devez disposer d'un clavier qui les supporte. La plupart des claviers européens disposent déjà des touches mortes avec la variante par défaut. Cela dit, ce n'est pas le cas pour les claviers nord-américains. Même s'il existe quelques petites différences entre les claviers, la meilleure solution est d'utiliser un « en_US » à la place de « us » par exemple. Cela se fait dans le fichier /etc/X11/xorg.conf :

Exemple de code 3.16 : extrait de /etc/X11/xorg.conf

Section "InputDevice"
    Identifier "Keyboard0"
    Driver     "kbd"
    Option     "XkbLayout" "en_US" # Au lieu de "us" seul.
    (Suivent d'autres options Xkb.)
EndSection

Ce changement prendra effet lorsque vous relancerez le serveur X. Pour appliquer les changements dès à présent, utilisez l'outil setxkbmap avec, par exemple, setxkbmap en_US (toujours pour les claviers nord-américains).

Il est probablement plus facile de faire comprendre le fonctionnement des touches mortes par l'exemple. Même si les résultats dépendent de la localisation les idées devraient rester les mêmes, quelque soit la localisation. Les exemples contiennent des caractères UTF-8, donc pour les visualiser, vous devrez indiquer à votre navigateur de visualiser la page en UTF-8, ou avoir la localisation UTF-8 déjà configurée.

Pour les claviers US

En reprenant la configuration proposee plus haut, si je tape AltGr-[, que je relâche les deux touches, puis tape un a, j'aurai écrit un « ä ». En faisant AltGr-[ puis e, j'obtiendrai un « ë ». Avec AltGr-; puis a, j'aurai un « á ». Et ainsi de suite.

En appuyant simultanément sur AltGr, Maj et [, puis en les libérant et en tapant un a, on obtiendra le caractère scandinave « å ». De la même manière, avec AltGr, Maj et [, puis en ne relâchant que le [, puis en le tapant de nouveau, on obtiendra un « ˚ ». Même s'il y ressemble, ce caractère (U+02DA) n'est pas le même que le symbole utilisé pour les degrés (U+00B0). Le même principe peut être appliqué avec les autres accents, par exemple avec AltGr et [, en ne relâchant que le [ puis en le tapant de nouveau, vous aurez un « ¨ ».

On peut aussi n'utiliser AltGr qu'avec des caractères alphabétiques du clavier. Par exemple, AltGr et m formera la lettre minuscule grecque mu : « µ ». AltGr et s produira la lettre esszet ou scharfes : « ß ». Comme de nombreux utilisateurs européens s'en doutent (parce que la touche est indiquée sur leur clavier) AltGr et 4 (ou e dépendamment de la disposition du clavier) produira le symbole de l'Euro : « € ».

Pour les claviers francophones

Xorg offre plusieurs dispositions pour les claviers francophones. Nous discuterons ici de trois d'entre elles. Les deux premières (« fr » et « fr-latin9 ») sont des dispositions françaises AZERTY. La troisième (« ca_enhanced ») est une disposition QWERTY. « fr » est généralement la disposition installée par défaut. Elle permet d'utiliser la touche AltGr, éventuellement en combinaison avec la touche Majuscule, sur pratiquement toutes les lettres afin de produire des nouveaux symboles, comme æ, «, ¶, ©, ß, ð.

La seconde, « fr-latin9 », est une réorganisation de la disposition des touches sur les claviers français et a été introduite à l'époque de la création du jeu de caractères ISO 8859-15. Les touches AltGr et AltGR+Maj permettent maintenant d'accéder facilement à tous les symboles accentuées, les caractères « et » sont placés à côté ainsi que ¹, ² et ³, il y a une touche pour taper œ directement, les guillements anglais sont présents (” et “)...

Voici la disposition, issue du fichier /usr/X11R6/lib/X11/xkb/symbols/pc/fr-latin9.

Exemple de code 3.17 : La disposition fr-latin9

 Les accents circonflexes des principales voyelles sont obtenus avec
 la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift.

  ____                                     _________ _____________ _______
 | S A| S = Shift,  A = AltGr + Shift     | Imprime | Arrêt défil | Pause |
 | s a| s = normal, a = AltGr             |  Exec   |             | Halte |
  ¯¯¯¯                                     ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
  ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
 | Œ ”| 1 ·| 2 É| 3 ,| 4 ´| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <--   |
 | œ “| & ´| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }|       |
  ========================================================================
 | |<-  | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë|     |
 |  ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' |
  ===================================================================¬    |
 |       | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥|    |
 | MAJ   | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³|    |
  ========================================================================
 | ^   | >  | W <| X >| C  | V `| B '| N  | ? º| .  | /  | § ˙|     ^     |
 | |   | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡|     |     |
  ========================================================================
 |      |      |      |                       |       |      |     |      |
 | Ctrl | Meta | Alt  | Space    Nobreakspace | AltGr | Multi|Menu | Ctrl |
  ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯


              Si les touches mortes fonctionnent, utiliser les accents dits
              « morts », i.e. fonctionnant comme l'accent circonflexe & le
              tréma des machines à écrire ; sont disponibles :

 (^) : accent circonflexe,
 Shift (^) : tréma,
 AltGr (^) : tilde,
 AltGr (1) : accent aigu,
 AltGr (7) : accent grave

 Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
 sur les vielles machines à écrire :

 AltGr (1) puis e : é
 AltGr (^) puis n : ñ...

La troisième disposition (« ca_enhanced »), dite « canadienne française », est de type QWERTY, comme les claviers américains standards. Elle permet de taper les caractères diacritiques français avec un minimum d'effort. Les quatre touches nécessaires sont situées à gauche de la touche Retour. En plus de la touche É, qui permet de taper un « e » accent aigu directement, trois touches mortes permettent de générer les autres diacritiques, soit une pour l'accent grave, une pour l'accent circonflexe et une pour la cédille et le tréma. Ces touches mortes peuvent être suivies d'une lettre minuscule ou majuscule. Par exemple, ^ (la touche morte pour l'accent circonflexe) suivie de E donne « Ê ». Il n'est donc jamais nécessaire d'utiliser la touche AltGr pour taper les diacritiques françaises.

Sur les claviers à 105 touches (par opposition aux 104 touches classiques), la touche supplémentaire permet de taper les accents français (« ») et le symbole degré (« ° »). La disposition canadienne française proposée par Xorg a été étendue considérablement par Éric Moreau par rapport à la version originale disponible sur certains autres systèmes d'exploitation. On peut donc aussi utiliser le clavier canadien français pour taper une variété de symboles en utilisant des combinaisons impliquant la touche AltGr, tels que :œ, æ, µ, Ω, ×, ÷, etc. Le diagramme ci-dessous illustre la disposition canadienne française sous Linux dans ses détails.

Exemple de code 3.18 : La disposition ca_enhanced

  ____                                     _________ _____________ _______
 | S A| S = Shift,  A = AltGr + Shift     | Imprime | Arrêt défil | Pause |
 | s a| s = normal, a = AltGr             |  Exec   |             | Halte |
  ¯¯¯¯                                     ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
  ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
 | | ¡| ! ¹| "  | /  | $ ¤| %  | ?  | &  | * ™| ( ±| ) )| _ ¿| + ˛| <--   |
 | # \| 1 ±| 2 @| 3 £| 4 ¢| 5 ¤| 6 ¬| 7 ¦| 8 ²| 9 ³| 0 ¼| - ½| = ¾|       |
  ========================================================================
 | |<-  | Q Ø| W Ł| E Œ| R Þ| T Ŧ| Y ¥| U ↑| I ı| O Ω| P ®| ^ °| ¨ ─|     |
 |  ->| | q ø| w ł| e œ| r þ| t ŧ| y ←| u ↓| i →| o §| p ¶| ^ [| ¸ ]| <-' |
  ===================================================================¬    |
 | Verr. | A Æ| S §| D Đ| F ª| G Ŋ| H Ħ| J  | K &| L Ł| : ˝| ` ˇ| > ˘|    |
 | Maj.  | a æ| s ß| d ð| f đ| g ŋ| h ħ| j  | k ĸ| l ł| ; ~| ` {| < }|    |
  ========================================================================
 |     | »  | Z  | X  | C ©| V ‘| B ’| N  | M º| ' ×| . ÷| É  |           |
 | Maj.| « °| z  | x  | c ¢| v “| b ”| n  | m µ| , ¯| . ·| é ´| Maj.      |
  ========================================================================
 |      |      |      |                       |      |      |      |      |
 | Ctrl | Méta | Alt  | Espace                |AltGr |Multi | Menu | Ctrl |
  ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯

 (Les touches mortes sont indiquées dans le diagramme.)

 Touches mortes pour les diacritiques de la langue française :

     `              Accent grave          (`)    +e = è
     ^              Accent circonflexe    (^)    +a = â
     ¸              Cédille               (¸)    +c = ç
     Maj+¸          Tréma                 (¨)    +i = ï
     AltGr+é        Accent aigu*          (´)    +u = ú

 * Cette touche morte n'est pas nécessaire pour écrire en français puisqu'une
   touche permet de taper « é » et « É » directement et que l'accent aigu
   n'est utilisé en français que sur la lettre « e ».

 Touches mortes pour d'autres diacritiques :

     AltGr+,        Macron                (¯)    +u = ū
     AltGr+Maj+<    Brève                 (˘)    +a = ă
     AltGr+Maj+=    Ogonek                (˛)    +a = ą
     AltGr+Maj+^    Rond en chef          (°)    +a = å
     AltGr+Maj+;    Double accent aigu    (˝)    +o = ő
     AltGr+Maj+`    Hatchek               (ˇ)    +s = š

Cette disposition est très pratique pour ceux qui veulent taper des textes français et qui sont habitués aux dispositions QWERTY. Toutefois, il est difficile de trouver des claviers dont les étiquettes des touches correspondent à la disposition canadienne française en dehors du Québec.

Ressources



Imprimer

Dernière mise à jour le 11 août 2009

Résumé : L'objectif de ce guide est de vous montrer comment mettre en place et utiliser le jeu de caractères Unicode UTF-8 sur votre système Gentoo Linux, après vous avoir présenté les avantages de l'Unicode et, plus particulièrement, UTF-8.

Thomas Martin
Auteur

Alexander Simonov
Contributeur

Shyam Mani
Correcteur

Clément Varaldi
Traducteur

Camille Huot
Traducteur

Olivier Fisette
Traducteur

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.