3713 lines
109 KiB
Plaintext
3713 lines
109 KiB
Plaintext
|
Le Francophones-HOWTO : Linux & la langue fran<61>aise
|
|||
|
<20>crit par Guylhem Aznar, <guylhem(<28>)metalab.unc.edu>
|
|||
|
v3.2.2 ; D<>cembre 2001
|
|||
|
|
|||
|
Copyright <20> 1997, 1998, 1999, Guylhem Aznar ; librement distribuable
|
|||
|
selon les termes du GNU Free Documentation License,
|
|||
|
http://www.fsf.org/licenses/fdl.html. Toutes les marques cit<69>es
|
|||
|
appartiennent <20> leurs propri<72>taires respectifs.
|
|||
|
______________________________________________________________________
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1. Pr<50>sentation
|
|||
|
|
|||
|
1.1 Introduction
|
|||
|
1.2 Fichiers utilis<69>s dans ce HOWTO
|
|||
|
1.3 Les Fran<61>ais ne sont pas les seuls francophones !
|
|||
|
1.3.1 a) Diff<66>rentes versions
|
|||
|
1.3.2 b) Les <20>tats-uniens : raccourcis claviers
|
|||
|
1.3.3 c) Le Luxembourg : comme la France
|
|||
|
1.3.4 d) Le Canada : 3 claviers
|
|||
|
1.4 Attention
|
|||
|
1.4.1 a) ROOT
|
|||
|
1.4.2 b) CHERCHER
|
|||
|
|
|||
|
2. Les probl<62>mes
|
|||
|
|
|||
|
2.1 Pr<50>sentation
|
|||
|
2.2 Solutions
|
|||
|
2.3 Aider
|
|||
|
|
|||
|
3. Le vocabulaire : petit lexique
|
|||
|
|
|||
|
3.1 8 bits
|
|||
|
3.2 La police de caract<63>res
|
|||
|
3.3 Les polices de caract<63>res
|
|||
|
3.4 Table de clavier
|
|||
|
3.5 <20> Home <20>, <20> End <20>, <20> Page_Up <20> et <20> Page_Down <20>
|
|||
|
3.6 Touches mortes
|
|||
|
3.7 <20> BackSpace <20> et <20> Delete <20>
|
|||
|
3.8 <20> UTC <20> et <20> GMT <20>
|
|||
|
|
|||
|
4. R<>glage du clavier sous Linux
|
|||
|
|
|||
|
4.1 Introduction
|
|||
|
4.2 Attention au stty !
|
|||
|
4.3 Faire de ces modifications les d<>fauts au d<>marrage
|
|||
|
4.4 Polices de caract<63>re
|
|||
|
4.5 Vieilles versions
|
|||
|
4.6 Am<41>liorations sp<73>cifiques au clavier fran<61>ais latin9
|
|||
|
4.6.1 a) carr<72>/cube
|
|||
|
4.6.2 b) dollar / livre / symbole mon<6F>taire international
|
|||
|
4.7 Pour les autres claviers latin9
|
|||
|
4.8 Dans tous les cas
|
|||
|
|
|||
|
5. XFree
|
|||
|
|
|||
|
5.1 Introduction
|
|||
|
5.2 Mal programmer
|
|||
|
5.3 Le clavier en pratique
|
|||
|
5.3.1 a) Solution utilisant xmodmap
|
|||
|
5.3.2 b) Solution utilisant xkb (recommand<6E>e)
|
|||
|
5.3.3 c) Solution du compose
|
|||
|
5.3.4 d) Solution modifiant la libX11
|
|||
|
5.3.5 e) Est-ce n<>cessaire ?
|
|||
|
5.4 <20> latin9 <20> ou <20> latin1 <20> ?
|
|||
|
5.5 Table de correspondances
|
|||
|
5.6 Les polices ISO 8859-15 latin 9 sous X
|
|||
|
|
|||
|
6. R<>glage du clavier pour les applications en mode texte
|
|||
|
|
|||
|
6.1 Tout d'abord
|
|||
|
6.2 Une police, des polices...
|
|||
|
6.2.1 a) Historique des polices
|
|||
|
6.2.2 b) ISO 8859-15 latin 9
|
|||
|
6.2.3 c) Utiliser les polices ISO 8859-15 latin 9
|
|||
|
6.2.4 d) Unicode
|
|||
|
6.2.5 e) Utiliser les possibilit<69>s Unicode
|
|||
|
6.3 Les locales, messages en Fran<61>ais
|
|||
|
6.4 Son linux en fran<61>ais
|
|||
|
6.5 Les variables
|
|||
|
6.6 Les caract<63>res 8 bits dans les programmes utilisant readline tels bash ou ncftp...
|
|||
|
6.7 zsh
|
|||
|
6.8 tcsh
|
|||
|
6.9 Pour tous les shells
|
|||
|
6.10 L'heure
|
|||
|
6.11 vi
|
|||
|
6.12 Emacs
|
|||
|
6.13 less
|
|||
|
6.14 ls
|
|||
|
6.15 flex
|
|||
|
6.16 elm
|
|||
|
6.17 col
|
|||
|
6.18 rlogin
|
|||
|
6.19 joe
|
|||
|
6.20 TeX et LaTeX
|
|||
|
6.21 Manuel
|
|||
|
6.22 Correcteur orthographique ispell
|
|||
|
6.23 Les claviers 105 touches
|
|||
|
6.24 PGP
|
|||
|
6.25 Impression en mode ascii
|
|||
|
6.26 Unicode/latin/cp... je n'ai pas compris ce dernier paragraphe !
|
|||
|
6.27 ncurses
|
|||
|
6.27.1 Introduction
|
|||
|
6.27.2 Les accents
|
|||
|
6.28 Perl
|
|||
|
6.29 Installer les locales
|
|||
|
6.29.1 Midnight Commander (mc)
|
|||
|
6.30 Kernel
|
|||
|
6.31 Lilo
|
|||
|
6.32 Groff (man)
|
|||
|
6.33 Divers
|
|||
|
|
|||
|
7. R<>glage du clavier pour les applications X
|
|||
|
|
|||
|
7.1 Les xterminaux (xterm, nxterm, rxvt...)
|
|||
|
7.2 Les applications Motif
|
|||
|
7.3 Le manuel
|
|||
|
7.4 NumLock
|
|||
|
7.5 XDM
|
|||
|
|
|||
|
8. Remerciements
|
|||
|
|
|||
|
|
|||
|
|
|||
|
______________________________________________________________________
|
|||
|
|
|||
|
1. Pr<50>sentation
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1.1. Introduction
|
|||
|
|
|||
|
|
|||
|
Ce document a <20>t<EFBFBD> r<>dig<69> pour aider <20> configurer un ordinateur dot<6F> du
|
|||
|
syst<73>me d'exploitation Linux pour des utilisateurs francophones.
|
|||
|
|
|||
|
Il y est expliqu<71> par exemple comment configurer p<>riph<70>riques et
|
|||
|
applications afin de prendre en compte les particularit<69>s et les
|
|||
|
sp<73>cificit<69>s de notre langue...
|
|||
|
|
|||
|
Toutefois, ce document ne traite pas de l'installation du syst<73>me
|
|||
|
d'exploitation Linux ; il est implicitement suppos<6F> que vous ayez
|
|||
|
correctement install<6C> une distribution de Linux, RedHat, Debian ou
|
|||
|
Suse, cette liste n'<27>tant pas exhaustive, et que vous vous appr<70>tiez
|
|||
|
maintenant <20> mieux la configurer ; veuillez donc vous r<>f<EFBFBD>rer <20>
|
|||
|
d'autres HOWTOs pour l'installation.
|
|||
|
|
|||
|
Les adresses <20>lectroniques ont <20>t<EFBFBD> volontairement supprim<69>es ou
|
|||
|
modifi<66>es en rempla<6C>ant les <20> a enroul<75>s <20> par des <20> (<28>) <20> afin
|
|||
|
d'<27>viter les publipostages tr<74>s g<>nants.
|
|||
|
|
|||
|
Si quelque terme employ<6F> vous semble un peu obscur, je vous invite <20>
|
|||
|
vous reporter au lexique (<28> Vocabulaire : un petit lexique <20>),
|
|||
|
expliquant certains mots tels 8 bits, AZERTY ou QWERTY, qui sont
|
|||
|
employ<6F>s tout au long de ce document.
|
|||
|
|
|||
|
|
|||
|
1.2. Fichiers utilis<69>s dans ce HOWTO
|
|||
|
|
|||
|
|
|||
|
Tous les fichiers cit<69>s dans ce HOWTO, sont disponibles sous licence
|
|||
|
GPL sur ma page
|
|||
|
|
|||
|
Je vous recommande de t<>l<EFBFBD>charger tous ces fichiers pour les utiliser
|
|||
|
selon les exemples propos<6F>s.
|
|||
|
|
|||
|
|
|||
|
1.3. Les Fran<61>ais ne sont pas les seuls francophones !
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1.3.1. a) Diff<66>rentes versions
|
|||
|
|
|||
|
|
|||
|
Pour chaque manipulation d<>pendant du pays concern<72>, un certain nombre
|
|||
|
de versions peuvent <20>tre propos<6F>es :
|
|||
|
|
|||
|
|
|||
|
<20> une canadienne normalis<69>e (cn)
|
|||
|
|
|||
|
<20> une belge wallonne (be)
|
|||
|
|
|||
|
<20> une fran<61>aise (fr)
|
|||
|
|
|||
|
<20> une qu<71>b<EFBFBD>coise (qc)
|
|||
|
|
|||
|
<20> une suisse romande (sf)
|
|||
|
|
|||
|
<20> une <20>tats-unienne internationale (usx)
|
|||
|
|
|||
|
|
|||
|
1.3.2. b) Les <20>tats-uniens : raccourcis claviers
|
|||
|
|
|||
|
|
|||
|
La version <20>tats-unienne internationale permet <20> tous les francophones
|
|||
|
utilisant un clavier <20> 7 bits <20> aussi nomm<6D> <20> QWERTY <20> de b<>n<EFBFBD>ficier
|
|||
|
de l'<27>tendue des caract<63>res 8 bits.
|
|||
|
|
|||
|
Est disponible aussi une version pour ceux qui utilisent un clavier <20>
|
|||
|
Happy Hacking <20>.
|
|||
|
|
|||
|
|
|||
|
1.3.3. c) Le Luxembourg : comme la France
|
|||
|
|
|||
|
|
|||
|
Le Grand Duch<63> du Luxembourg utilisant les conventions fran<61>aises,
|
|||
|
j'invite les lecteurs luxembourgeois <20> se reporter aux exemples
|
|||
|
fran<61>ais.
|
|||
|
|
|||
|
1.3.4. d) Le Canada : 3 claviers
|
|||
|
|
|||
|
|
|||
|
Il est classique de parler des claviers <20> canadien international <20>,
|
|||
|
surtout destin<69>s aux anglophones (qui leur pr<70>f<EFBFBD>rent toutefois les
|
|||
|
claviers QWERTY standard) et les claviers <20> canadien fran<61>ais <20>, aux
|
|||
|
lettres accentu<74>es.
|
|||
|
|
|||
|
Mais, de nouveaux claviers dits <20> canadiens normalis<69>s <20> ont fait leur
|
|||
|
apparition r<>cemment pour fusionner les mod<6F>les <20> canadien
|
|||
|
international <20>, non concern<72> par le cadre du Francophones HOWTO, et <20>
|
|||
|
canadien fran<61>ais <20>.
|
|||
|
|
|||
|
Ces nouveaux claviers r<>pondent aux normes CAN/CSA Z243.200-92 et ISO
|
|||
|
9995-7 ; ils sont pr<70>vus pour <20>tre utilis<69>s dans n'importe quelle
|
|||
|
langue, en rempla<6C>ant par exemple les intitul<75>s des touches par des
|
|||
|
pictogrammes : <20> Del <20>, en anglais, qui se traduisait par <20> Suppr <20> en
|
|||
|
fran<61>ais devient ainsi trois barres obliques fines orient<6E>es sud-
|
|||
|
ouest/nord-est.
|
|||
|
|
|||
|
Plus d'explications sont disponibles sur le site de l'Office de la
|
|||
|
Langue Fran<61>aise.
|
|||
|
|
|||
|
Toutefois je n'ai pas pu r<>ussir <20> me procurer un tel clavier ; mes
|
|||
|
fichiers de configuration sont donc uniquement bas<61>s sur les
|
|||
|
(illustrations) et les normes th<74>oriques, et non les normes pratiques.
|
|||
|
|
|||
|
Par exemple, si j'ai compris que la touche <20> Control <20> de droite est
|
|||
|
utilis<69>e comme une <20> AltGr <20> mais sert <20> obtenir encore d'autres
|
|||
|
caract<63>res, je n'ai aucune id<69>e du comportement de ces touches lorsque
|
|||
|
seule l'autre a une s<>rigraphie pr<70>vue...
|
|||
|
|
|||
|
Si on peut m'envoyer un tel clavier, et surtout son pilote, je promets
|
|||
|
de mettre les fichiers de configuration <20> jour :-)
|
|||
|
|
|||
|
|
|||
|
1.4. Attention
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1.4.1. a) ROOT
|
|||
|
|
|||
|
|
|||
|
Certaines manipulations recommand<6E>es par ce document ne peuvent <20>tre
|
|||
|
effectu<74>es que sous le compte privil<69>gi<67> <20> root <20> ; la plus grande
|
|||
|
prudence est alors de rigueur car toute action inad<61>quate peut mettre
|
|||
|
en p<>ril le contenu des disques.
|
|||
|
|
|||
|
Sauvegarder les fichiers existants, par exemple en les copiant sous le
|
|||
|
m<>me nom suivi du pr<70>fixe .old, avant de les modifier ou remplacer.
|
|||
|
|
|||
|
|
|||
|
1.4.2. b) CHERCHER
|
|||
|
|
|||
|
|
|||
|
Le paquetage GNU nomm<6D> "find" offre un programme appel<65> locate, gr<67>ce
|
|||
|
auquel l'utilisateur peut retrouver le nom complet, chemin de
|
|||
|
r<>pertoires, d'un fichier dont il ne conna<6E>t que le nom.
|
|||
|
|
|||
|
Certaines distributions Linux fournissent cela en /usr/bin/locate.
|
|||
|
|
|||
|
En tant que root, lancer updatedb invoque un find / sur les disques
|
|||
|
mont<6E>s et place les noms de tous les fichiers sous forme hash dans
|
|||
|
/usr/lib/locate/find.codes (ou /var/lib/slocate/slocate.db pour
|
|||
|
slocate, utilis<69> dans les distributions modernes.)
|
|||
|
|
|||
|
locate permet ensuite de localiser l'un d'eux :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(guylhem@victis:guylhem)$ locate noms_des_fichiers_<73>_retrouver
|
|||
|
|
|||
|
|
|||
|
|
|||
|
2. Les probl<62>mes
|
|||
|
|
|||
|
|
|||
|
|
|||
|
2.1. Pr<50>sentation
|
|||
|
|
|||
|
|
|||
|
Le probl<62>me de tout utilisateur francophone apr<70>s l'installation de
|
|||
|
Linux est de lui faire comprendre qu'il utilise des normes diff<66>rentes
|
|||
|
des standards par d<>faut <20>tats-uniens..
|
|||
|
|
|||
|
Cela a des cons<6E>quences sur :
|
|||
|
|
|||
|
|
|||
|
<20> la police de caract<63>res donc les caract<63>res sp<73>ciaux que l'on
|
|||
|
utilise, accentu<74>s comme <20> <20> <20> <20> ou bien ligatur<75>s comme <20> , voire
|
|||
|
<20> e dans l'o <20> qui vient d'appara<72>tre sous Linux gr<67>ce <20> la norme
|
|||
|
ISO-8859-15 aussi nomm<6D>e latin-9
|
|||
|
|
|||
|
<20> la correspondance entre la s<>rigraphie des cabochons ou <20> touches <20>
|
|||
|
du clavier sur lesquelles vous appuyez, et les codes que Linux
|
|||
|
renvoie, celui-ci supposant un clavier QWERTY <20>tats-unien par
|
|||
|
d<>faut
|
|||
|
|
|||
|
<20> le format de page pris en charge par les programmes que vous
|
|||
|
utilisez pour imprimer, diff<66>rent entre les <20>tats-Unis; (14<31>8,5
|
|||
|
pouces pour du papier dit l<>gal) et l'Europe (29,7<>21 cm pour des
|
|||
|
feuilles a4)
|
|||
|
|
|||
|
<20> le format des dates et de l'heure, la position des jours et des
|
|||
|
mois <20>tant variable selon les r<>gions de la francophonie
|
|||
|
|
|||
|
<20> le format de la monnaie, aussi variable selon les francophones
|
|||
|
|
|||
|
<20> la langue utilis<69>e pour les messages d'erreur
|
|||
|
|
|||
|
|
|||
|
2.2. Solutions
|
|||
|
|
|||
|
|
|||
|
Tout est pr<70>configur<75> pour un <20>tats-unien : bien que ceux-ci ne
|
|||
|
repr<70>sentent pas la majorit<69> de la population mondiale, ils ont <20>t<EFBFBD>
|
|||
|
pr<70>curseurs en informatique.
|
|||
|
|
|||
|
Il faut donc se faire reconna<6E>tre comme une <20> exception <20> par les
|
|||
|
diff<66>rents programmes, par des options ou des variables <20> exporter
|
|||
|
voire dans les pires des cas une modification du code source suivie
|
|||
|
d'une recompilation.
|
|||
|
|
|||
|
Heureusement, la philosophie GNU de Linux rend le syst<73>me tr<74>s ouvert
|
|||
|
<20> des modifications de toutes sortes et comme vous allez le d<>couvrir
|
|||
|
au fil de ce document, et il est assez simple d'obtenir un r<>sultat
|
|||
|
tr<74>s correct.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
2.3. Aider
|
|||
|
|
|||
|
|
|||
|
Pour le moment, le futur de l'internationalisation de Linux porte sur
|
|||
|
la traduction des messages d'erreur, des programmes comme KDE ou
|
|||
|
GNOME, des pages de manuel et de la documentation, alors si vous vous
|
|||
|
sentez l'<27>me d'un traducteur, n'h<>sitez pas <20> contacter l'<27>quipe de
|
|||
|
traduction des HOWTOs ; pour cela, adressez-vous <20> <20>ric Dumas
|
|||
|
<dumas(<28>)freenix.fr> ou <dumas(<28>)linux.eu.org>.
|
|||
|
|
|||
|
|
|||
|
3. Le vocabulaire : petit lexique
|
|||
|
|
|||
|
|
|||
|
Tout d'abord, un mot sur le vocabulaire employ<6F> :
|
|||
|
|
|||
|
|
|||
|
3.1. 8 bits
|
|||
|
|
|||
|
|
|||
|
Des caract<63>res sont dits <20> 8 bits <20> s'ils correspondent <20> des accents
|
|||
|
ou <20> des signes sp<73>ciaux comme <20> <20> <20>, non inclus dans le standard
|
|||
|
ASCII <20> 7 bits <20>.
|
|||
|
|
|||
|
Ce standard, sans accents ni caract<63>res sp<73>ciaux, correspond aux 128
|
|||
|
(2^7) premiers caract<63>res des 256 (2^8), de 0 <20> 255.
|
|||
|
|
|||
|
Pour des raisons historiques (place disponible, inutilit<69> pour les
|
|||
|
<20>tats uniens) seuls les 128 (2^7) premiers caract<63>res ont <20>t<EFBFBD>
|
|||
|
normalis<69>s par l'ASCII : par exemple le A qui est le 65e caract<63>re de
|
|||
|
la table ASCII s'<27>crit 0100 0001 en notation binaire.
|
|||
|
|
|||
|
Pour les caract<63>res situ<74>s hors de la norme ASCII, diff<66>rentes <20>
|
|||
|
normes <20> ou <20> standards <20> incompatibles, comme l'Unicode, l'iso-8859,
|
|||
|
le latin, le cp (...) fixent ces correspondances.
|
|||
|
|
|||
|
Par exemple, dans le standard ASCII <20>tendu par l'iso-8859-1, le 224<32>me
|
|||
|
caract<63>re <20>quivalent not<6F> <20> eb <20> en hexad<61>cimal correspond <20> <20> <20> <20>.
|
|||
|
|
|||
|
|
|||
|
3.2. La police de caract<63>res
|
|||
|
|
|||
|
|
|||
|
Une police de caract<63>res est une correspondance entre des codes
|
|||
|
informatiques et des caract<63>res (alphanum<75>riques...) affichables par
|
|||
|
l'ordinateur.
|
|||
|
|
|||
|
La police de caract<63>res est l'ensemble des repr<70>sentations graphiques
|
|||
|
des caract<63>res d'un standard.
|
|||
|
|
|||
|
|
|||
|
3.3. Les polices de caract<63>res
|
|||
|
|
|||
|
|
|||
|
Il existe plusieurs polices de caract<63>res 8 bits pouvant r<>pondre au
|
|||
|
besoins des francophones.
|
|||
|
|
|||
|
Je vous recommande de lire <20> ce sujet l'excellent site de Roman
|
|||
|
Czyborra qui a fait une th<74>se sur ce sujet et qui vous donnera une
|
|||
|
explication fort d<>taill<6C>e
|
|||
|
|
|||
|
Pour r<>sumer, il est n<>cessaire de choisir une police de caract<63>res
|
|||
|
pour que tous les caract<63>res fran<61>ais soient disponibles.
|
|||
|
|
|||
|
Voici la liste des polices dites <20> ISO 8859 <20>, mais attention, il
|
|||
|
existe leurs <20>quivalents en <20> code page <20> pour windows (comme cp1252).
|
|||
|
<20> ISO 8859-1 : latin 1 : langues d'Europe de l'ouest, Afrikaans,
|
|||
|
Swahili.
|
|||
|
|
|||
|
Le Swahili, n'utilise aucun caract<63>re accentu<74> (comme l'Anglais, le
|
|||
|
Malais et l'Indon<6F>sien), donc n'importe quel version fait
|
|||
|
l'affaire.
|
|||
|
|
|||
|
Pour l'Afrikaans, je ne sais plus exactement quel <20>tait le choix
|
|||
|
initial (c'est-<2D>-dire o<> avait <20>t<EFBFBD> rang<6E> le 'n au d<>part), mais il
|
|||
|
ne me semble pas que ce soit dans Latin 1.
|
|||
|
|
|||
|
Dans la pratique, bien s<>r, les Afrikaaner utilisent Latin 1 ; la
|
|||
|
m<>me chose se passe pour un certain nombre des cas qui suivent.
|
|||
|
|
|||
|
<20> ISO 8859-2 : latin 2 : langues d'Europe centrale et orientale.
|
|||
|
|
|||
|
Dans les faits : Polonais, Tch<63>que, Slovaque, Slov<6F>ne, Croate,
|
|||
|
Hongrois, Roumain, probablement aussi le Sorbe ou Sorabe (Wende en
|
|||
|
allemand).
|
|||
|
|
|||
|
Officiellement, je crois que l'Albanais s'<27>crit aussi en Latin-2,
|
|||
|
mais comme dans les faits c'est identique au Latin 1... Il y a un
|
|||
|
probl<62>me pour le Roumain, car le Latin 2 contient formellement les
|
|||
|
caract<63>res avec une c<>dille, quand en roumain on utilise une
|
|||
|
virgule souscrite.
|
|||
|
|
|||
|
<20> ISO 8859-3 : latin 3 : Esp<73>ranto et Maltais.
|
|||
|
|
|||
|
Initialement, c'<27>tait pr<70>vu pour les langues d'Europe du Sud, y
|
|||
|
compris le Turc, les langues d'Espagne (donc Catalan, Basque), le
|
|||
|
Fran<61>ais.
|
|||
|
|
|||
|
Mais dans la pratique, c'est limit<69> <20> ces deux langues.
|
|||
|
|
|||
|
<20> ISO 8859-4 : latin 4 : langues baltes (incomplet).
|
|||
|
|
|||
|
Pas utilis<69> dans la pratique, remplac<61> par Latin 7 (iso-8859-13),
|
|||
|
ou plut<75>t en pratique la codepage 1257 Windows.
|
|||
|
|
|||
|
Pour l'Este ou Estonien, on peut aussi utiliser Latin 9.
|
|||
|
|
|||
|
<20> ISO 8859-9 : latin 5 (comme latin 1, moins l'Islandais, plus le
|
|||
|
Turc).
|
|||
|
|
|||
|
Usage : le Turc et peut-<2D>tre l'Az<41>ri, mais il manque le schwa, un <20>
|
|||
|
e <20> renvers<72>.
|
|||
|
|
|||
|
Codage officiel aux Pays-Bas du fait des Turcs qui y habitent.
|
|||
|
|
|||
|
<20> ISO 8859-10 : latin 6 : langues nordiques, sauf le Lapon Skolt.
|
|||
|
|
|||
|
Pas utilis<69> dans la pratique : ne servirait que pour les langues
|
|||
|
sames (ou lapones), mais il manque des caract<63>res, et le public
|
|||
|
concern<72> est de toute mani<6E>re assez limit<69>.
|
|||
|
|
|||
|
<20> ISO 8859-11 : Thai.
|
|||
|
|
|||
|
Pas encore officiellement adopt<70>.
|
|||
|
|
|||
|
<20> ISO 8859-12 : Indien (n'existe pas encore).
|
|||
|
|
|||
|
Pr<50>vu pour le devanagari, pour <20>crire l'Hindi, la langue principale
|
|||
|
de l'Inde, et aussi un grand nombre d'autres langues indiennes,
|
|||
|
dont le Sanskrit.
|
|||
|
|
|||
|
|
|||
|
<20> ISO 8859-13 : latin 7 : langues baltes.
|
|||
|
|
|||
|
Plus exactement : couvre les langues du pourtour de la mer
|
|||
|
Baltique, donc aussi le Polonais, l'Allemand et les langues de
|
|||
|
scandinavie.
|
|||
|
|
|||
|
Mais dans la pratique il est r<>duit en utilisation aux langues
|
|||
|
baltes et <20> l'Este ou Estonien.
|
|||
|
|
|||
|
<20> ISO 8859-14 : latin 8 : langues celtes.
|
|||
|
|
|||
|
Pour le Breton, le Ga<47>lique et les dialectes parl<72>es au Pays de
|
|||
|
Galles et en Irlande.
|
|||
|
|
|||
|
<20> ISO 8859-15 : latin 9 : comme latin 1, en y comblant quelques
|
|||
|
manques.
|
|||
|
|
|||
|
Pour le Fran<61>ais, le Finnois (en concurrence avec Latin 1) et
|
|||
|
l'Este ou Estonien (en concurrence avec Latin 7).
|
|||
|
|
|||
|
De cette longue liste, il convient de ne retenir que :
|
|||
|
|
|||
|
|
|||
|
<20> ISO 8859-1 latin 1 : police ouest-europ<6F>enne utilis<69>e par la
|
|||
|
majorit<69> des syst<73>mes UNIX, elle permet de disposer de tous les
|
|||
|
caract<63>res Fran<61>ais sauf les <20> o e li<6C>s <20>, l'euro et l'y tr<74>ma
|
|||
|
majuscule
|
|||
|
|
|||
|
<20> cp850 : <20>quivalent sous DOS de cette police, mais incompatible : il
|
|||
|
faut utiliser un outil de traduction de fichiers tel GNU recode.
|
|||
|
|
|||
|
<20> ISO 8859-15 latin 9 : police de l'union europ<6F>enne, il s'agit d'une
|
|||
|
version r<>vis<69>e de l'ISO 8859-1 latin 1 pour inclure tous les
|
|||
|
caract<63>res des pays europ<6F>ens ; ainsi on y retrouve les caract<63>res
|
|||
|
Fran<61>ais manquant, l'euro, et des caract<63>res finlandais manquants.
|
|||
|
|
|||
|
<20> latin 0 : l'ISO 8859-15 latin 9 est souvent incorrectement abr<62>g<EFBFBD>e
|
|||
|
en latin0, qui correspondait au nom du projet, de par son ambition
|
|||
|
<20> remplacer le latin 1 un jour. Je vous renvoie au site de l'ISO et
|
|||
|
<20> la documentation compl<70>te de ce standard
|
|||
|
|
|||
|
<20> cp1252 : <20>quivalent sous Windows de cette police, aussi
|
|||
|
incompatible, qui apporte les m<>mes caract<63>res manquants, du fait
|
|||
|
d'une r<>vision r<>cente de cette norme.
|
|||
|
|
|||
|
<20> ISO 8859-9 latin 5 : police officielle en Turquie et en Hollande,
|
|||
|
o<> les caract<63>res Islandais peu utilis<69>s ont <20>t<EFBFBD> remplac<61>s par les
|
|||
|
caract<63>res turcs.
|
|||
|
|
|||
|
<20> cp1254 : <20>quivalent sous Windows de cette police, aussi
|
|||
|
incompatible, qui apporte les caract<63>res manquant au Fran<61>ais
|
|||
|
pr<70>c<EFBFBD>demment cit<69>s et remplace les caract<63>res Islandais peu
|
|||
|
utilis<69>s par les caract<63>res turcs.
|
|||
|
|
|||
|
Les choix de polices de caract<63>res sont souvent des questions ou la
|
|||
|
raison se heurte aux habitudes.
|
|||
|
|
|||
|
Pour ma part, si vous h<>sitez, je vous recommande l'ISO 8859-15 latin
|
|||
|
9, pour diverses raisons :
|
|||
|
|
|||
|
|
|||
|
<20> Il supporte l'int<6E>gralit<69> des caract<63>res utilis<69>s en Fran<61>ais de
|
|||
|
mani<6E>re standard sur les UNIX, pour les <20>changes de fichiers entre
|
|||
|
Solaris et Linux par exemple
|
|||
|
|
|||
|
|
|||
|
<20> Il s'agit de la police 8 bits choisie par l'union europ<6F>enne si
|
|||
|
l'Unicode, <20>volution du 8 bits, n'est pas disponible
|
|||
|
|
|||
|
<20> Il permet d'<27>crire des textes avec l'int<6E>gralit<69> des caract<63>res
|
|||
|
utilis<69>s dans l'union
|
|||
|
|
|||
|
<20> Il est en train de devenir le nouveau standard dans la messagerie
|
|||
|
<20>lectronique au sens large, supplantant progressivement l'ISO
|
|||
|
8859-1 latin 1
|
|||
|
|
|||
|
Le Francophones HOWTO utilise donc le latin 9 dans tous les exemples,
|
|||
|
car il y a de grandes chances que votre syst<73>me ne soit pas encore
|
|||
|
compatible latin 9... autant donc vous proposer des manipulations et
|
|||
|
des travaux pratiques utiles :-)
|
|||
|
|
|||
|
Toutefois, si vous ne pouvez utiliser l'ISO 8859-15 latin 9 et d<>cidez
|
|||
|
d'en choisir une autre, je vous recommande d'<27>viter les cp propres au
|
|||
|
monde DOS/Windows et de vous rabattre sur l'ISO 8859-1 latin 1 qui est
|
|||
|
encore un standard fort r<>pandu : dans chaque exemple je vous invite
|
|||
|
alors <20> remplacer les <20> latin9 <20> par des <20> latin1 <20>
|
|||
|
|
|||
|
|
|||
|
3.4. Table de clavier
|
|||
|
|
|||
|
|
|||
|
Une table de clavier est un fichier permettant de faire correspondre
|
|||
|
l'empreinte physique des cabochons, <20> touches <20> du clavier, au
|
|||
|
r<>sultat obtenu sur l'<27>cran de l'ordinateur.
|
|||
|
|
|||
|
Pour linux, ces fichiers sont dans /usr/lib/kbd/keytables/ ou
|
|||
|
/usr/share/kbd/keytables/
|
|||
|
|
|||
|
Par exemple, les claviers fran<61>ais AZERTY ont une table de clavier
|
|||
|
diff<66>rente des claviers suisse romands QWERTZ, ou des claviers du
|
|||
|
reste du monde, QWERTY.
|
|||
|
|
|||
|
Cela ne concerne que l'apparence du clavier, l'empreinte des
|
|||
|
cabochons, donc disposition relative des caract<63>res sur le clavier, et
|
|||
|
non son <20>lectronique interne ; si votre clavier ne vous convient pas,
|
|||
|
il vous suffit donc d'utiliser des autocollants pour le transformer en
|
|||
|
un autre clavier francophone.
|
|||
|
|
|||
|
|
|||
|
3.5. <20> Home <20>, <20> End <20>, <20> Page_Up <20> et <20> Page_Down <20>
|
|||
|
|
|||
|
|
|||
|
Les touches <20> Home <20>, <20> End <20>, <20> Page_Up <20> et <20> Page_Down <20> dont les
|
|||
|
noms varient selon les claviers sont les touches permettant
|
|||
|
respectivement d'aller en d<>but/fin de ligne et de monter/descendre
|
|||
|
d'une page.
|
|||
|
|
|||
|
Les codes affectes <20> ces touches sont respectivement 102 et 107 pour <20>
|
|||
|
Home <20> et <20> End <20> en mode terminal.
|
|||
|
|
|||
|
Dans les pictogrammes des claviers ISO 9995-7, ces touches sont
|
|||
|
repr<70>sent<6E>s par des fl<66>ches aux traits appuy<75>s.
|
|||
|
|
|||
|
Lorsqu'on presse une touche, le clavier <20>met un code, qui est
|
|||
|
intercept<70> par la table de clavier.
|
|||
|
|
|||
|
La table de clavier, si elle reconnait le code, renvoie la chaine
|
|||
|
associ<63>e <20> la touche, en l'occurence<63> "\e[4 <20> pour <20> End <20>.
|
|||
|
|
|||
|
Lorsque bash ou un autre programme re<72>oit cette chaine, il ne la
|
|||
|
connait pas !
|
|||
|
|
|||
|
Donc il faut lui dire, dans le .inputrc que "\e[4 " signifie "aller <20>
|
|||
|
la fin de la ligne"
|
|||
|
|
|||
|
Donc pour que ces touches fonctionnent dans le shell bash, on ajoutera
|
|||
|
donc dans le fichier .inputrc (dans votre / ou dans /etc/inputrc) les
|
|||
|
lignes:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
set meta-flag on
|
|||
|
set convert-meta off
|
|||
|
set input-meta on
|
|||
|
set output-meta on
|
|||
|
set bell-style visible
|
|||
|
|
|||
|
"\e[1~":beginning-of-line
|
|||
|
"\e[3~":delete-char
|
|||
|
"\e[4~":end-of-line
|
|||
|
"\e\C-h": backward-kill-word
|
|||
|
"\e\e[3~": kill-word
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Les premi<6D>res lignes permettent d'afficher les caract<63>res 8 bits, et
|
|||
|
de remplacer le <20> bip <20> en cas d'erreur par un <20>clair blanc <20> l'<27>cran.
|
|||
|
|
|||
|
|
|||
|
3.6. Touches mortes
|
|||
|
|
|||
|
|
|||
|
Les touches mortes sont des touches qui ne produisent pas de
|
|||
|
caract<63>res en elles-m<>mes, mais qui modifient la fa<66>on dont la frappe
|
|||
|
suivante va <20>tre interpr<70>t<EFBFBD>e, par exemple, le tr<74>ma ou l'accent
|
|||
|
circonflexe sont en g<>n<EFBFBD>ral des touches mortes.
|
|||
|
|
|||
|
Une touche morte est une touche qui doit donc <20>tre suivie d'un espace
|
|||
|
pour obtenir l'accent seul, ou dans le cas o<> elle est suivie d'une
|
|||
|
voyelle y positionne un accent, par exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> ^ <20> puis <20> e <20> donne <20> <20> <20>
|
|||
|
<20> ^ <20> puis <20> espace <20> donne <20> ^ <20>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Les touches mortes sont :
|
|||
|
|
|||
|
<20> be et fr: l'accent aigu en AltGr de 1 pour les Fran<61>ais et en AltGr
|
|||
|
de <20> pour les Belges, l'accent grave en AltGr de 7 pour les
|
|||
|
fran<61>ais & en AltGr de carr<72>/cube pour les Belges, le tr<74>ma et
|
|||
|
l'accent circonflexe tous deux <20> c<>t<EFBFBD> du P
|
|||
|
|
|||
|
<20> sf et usx: les accent aigus, graves, circonflexes, les tr<74>mas et la
|
|||
|
tilde
|
|||
|
|
|||
|
<20> qc: les accent graves, circonflexes, les tr<74>mas et la c<>dille
|
|||
|
|
|||
|
|
|||
|
3.7. <20> BackSpace <20> et <20> Delete <20>
|
|||
|
|
|||
|
|
|||
|
En raison d'une erreur volontaire et historique sous Linux, pour <20>
|
|||
|
<20>muler <20> le fonctionnement d'un clavier de console VT, ces 2 touches
|
|||
|
sont fr<66>quemments m<>lang<6E>es, au mieux fonctionnant <20> l'identique, au
|
|||
|
pire ne fonctionnant pas du tout.
|
|||
|
|
|||
|
Commen<65>ons donc par bien les d<>finir :
|
|||
|
|
|||
|
|
|||
|
<20> BackSpace : touche plac<61>e en haut <20> droite du pav<61> principal, au
|
|||
|
dessus d' <20> Entr<74>e <20>, au cabochon marqu<71> d'une fl<66>che vers la
|
|||
|
gauche.
|
|||
|
|
|||
|
<20> Delete : touche du pav<61> curseur au cabochon marqu<71> <20> Suppr <20> ou <20>
|
|||
|
Del <20>, <20> gauche de <20> Fin <20> ; en ISO 9995-7 elle correspond <20> trois
|
|||
|
barres obliques fines orient<6E>es sud-ouest/nord-est.
|
|||
|
|
|||
|
Le pav<61> num<75>rique offre une touche au marquage identique et <20> effet
|
|||
|
identique lorsque <20> Verr Num <20> ou <20> Num Lock <20> est d<>sactiv<69>.
|
|||
|
|
|||
|
Ces deux touches correspondent chacune <20> un de ces codes :
|
|||
|
|
|||
|
|
|||
|
<20> BS : caract<63>re ASCII 0x08, ou control-h.
|
|||
|
|
|||
|
<20> DEL : caract<63>re ASCII 0x7F, ou control-?
|
|||
|
|
|||
|
<20> ^D : caract<63>re ASCII 0x04, ou control-d.
|
|||
|
|
|||
|
Ceci dans le but d'effacer <20> gauche du curseur avec BackSpace, <20>
|
|||
|
droite du curseur avec Delete.
|
|||
|
|
|||
|
|
|||
|
3.8. <20> UTC <20> et <20> GMT <20>
|
|||
|
|
|||
|
|
|||
|
Chaque partie du monde a sa propre norme horaire, bas<61>e sur des
|
|||
|
fuseaux.
|
|||
|
|
|||
|
La France se trouve en zone MET, <20> heure moyenne europ<6F>enne <20> soit
|
|||
|
GMT+1 ; la zone <20> MET DST <20> correspond <20> l'heure d'<27>t<EFBFBD> activ<69>e soit
|
|||
|
GMT+2.
|
|||
|
|
|||
|
|
|||
|
<20> GMT est l'heure solaire moyenne de Greenwich. L'heure est compt<70>e <20>
|
|||
|
partir de midi et est donc d<>cal<61>e de 12 h par rapport au temps
|
|||
|
universel. GMT est bas<61>e sur la rotation de la terre, ce n'est donc
|
|||
|
pas un temps r<>gulier. En effet, la vitesse de rotation de la Terre
|
|||
|
subit des variations faibles mais assez chaotiques, en plus elle
|
|||
|
diminue sur le long terme.
|
|||
|
|
|||
|
<20> UTC, <20> temps universel coordonn<6E> <20>, est compt<70> <20> partir de minuit
|
|||
|
toujours par rapport au m<>ridien z<>ro. Il est bas<61> sur des <20>talons
|
|||
|
atomiques, mais des secondes intercalaires sont ajout<75>es
|
|||
|
occasionnellement pour faire en sorte qu'il ne s'<27>carte jamais de
|
|||
|
plus de une seconde de l'heure solaire moyenne. Le site de l'opdaf
|
|||
|
et le lexique donnent plus de renseignements.
|
|||
|
|
|||
|
C'est le temps UTC, d<>fini <20> Paris, qui sert de r<>f<EFBFBD>rence aux
|
|||
|
diff<66>rentes heures l<>gales.
|
|||
|
|
|||
|
L'acronyme <20> GMT <20> est employ<6F> 99% du temps pour d<>signer UTC, mais
|
|||
|
c'est une erreur ou un abus de langage.
|
|||
|
|
|||
|
Enfin, <20> titre purement indicatif, il existe l'heure astronomique,
|
|||
|
aussi compt<70>e sur des <20>talons atomiques mais d<>cal<61>e de 4 minutes par
|
|||
|
jour de l'heure terrestre car se basant sur la position de la terre
|
|||
|
dans l'espace par rapport aux <20>toiles.
|
|||
|
|
|||
|
4. R<>glage du clavier sous Linux
|
|||
|
|
|||
|
|
|||
|
|
|||
|
4.1. Introduction
|
|||
|
|
|||
|
|
|||
|
Il existe deux programmes pour configurer votre clavier : un pour la
|
|||
|
console : loadkeys et un pour XFree : xkbd.
|
|||
|
|
|||
|
Pour installer un clavier fran<61>ais sous Linux, tapez selon votre
|
|||
|
clavier une des lignes suivantes :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
loadkeys tables-clavier/fr/fr-latin9.map
|
|||
|
loadkeys tables-clavier/qc/qc-latin1.map
|
|||
|
loadkeys tables-clavier/cn/cn-latin1.map
|
|||
|
loadkeys tables-clavier/be/be-latin9.map
|
|||
|
loadkeys tables-clavier/sf/sf-latin1.map
|
|||
|
loadkeys tables-clavier/usx/usx-latin1.map
|
|||
|
loadkeys tables-clavier/usx/usx-happy-hacking-latin9.map
|
|||
|
|
|||
|
|
|||
|
|
|||
|
4.2. Attention au stty !
|
|||
|
|
|||
|
|
|||
|
Avec les tables latin 9 recommand<6E>es dans ce HOWTO, pour linux-console
|
|||
|
aussi bien que pour X window, N'UTILISEZ PLUS :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
stty erase ^H
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ou :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
stty erase ^?
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> stty erase <20> ne sert en effet qu'<27> <20>tablir une correspondance entre
|
|||
|
le code que renvoie une touche et la fonction erase pour effacer le
|
|||
|
caract<63>re.
|
|||
|
|
|||
|
Les tables ici fournies fonctionnent correctement et ne n<>cessitent
|
|||
|
donc pas de stty erase qui risquerait surtout de perturber leur bon
|
|||
|
fonctionnement !
|
|||
|
|
|||
|
Supprimez-donc ces lignes de vos fichiers d'initialisation de
|
|||
|
l'interpr<70>teur de commandes <20> shell <20>, comme .bashrc, .bash_profile ou
|
|||
|
.tcshrc .
|
|||
|
|
|||
|
|
|||
|
4.3. Faire de ces modifications les d<>fauts au d<>marrage
|
|||
|
|
|||
|
|
|||
|
|
|||
|
D'habitude, loadkeys est ex<65>cut<75> par des scripts au d<>marrage ; par
|
|||
|
exemple dans /etc/rc.d/init.d/keytable ou /etc/rc.d/rc.local,
|
|||
|
init.d/keytable ou rc.keymap.
|
|||
|
|
|||
|
La commande :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
find /etc/rc.d -type f | xargs grep loadkeys
|
|||
|
|
|||
|
|
|||
|
|
|||
|
vous fournira le nom exact du fichier lan<61>ant loadkeys ; il vous
|
|||
|
suffit alors de l'<27>diter pour que vos modifications soient d<>sormais
|
|||
|
prise en en compte <20> chaque d<>marrage.
|
|||
|
|
|||
|
Les distributions RedHat et Debian constituent des exceptions : la
|
|||
|
table de clavier par d<>faut <20>tant d<>finie dans /etc/sysconfig/keyboard
|
|||
|
pour la RedHat et /etc/kbd/config pour les Debian.
|
|||
|
|
|||
|
Remplacer donc dans le fichier propre <20> votre distribution la table de
|
|||
|
clavier en question par la bonne table comme fr-latin9.map (selon
|
|||
|
votre mod<6F>le de clavier)
|
|||
|
|
|||
|
Vous devrez mettre une copie de la table que vous utilisez dans le
|
|||
|
r<>pertoire o<> votre distribution va chercher les tables de clavier ;
|
|||
|
en g<>n<EFBFBD>ral /usr/lib/kbd/keymaps/i386/azerty/ pour une RedHat et
|
|||
|
/usr/share/kbd/keymaps/i386/azerty/ pour une Debian.
|
|||
|
|
|||
|
Allez donc sur t<>lechargez l'archive, enregistrez-la dans votre
|
|||
|
r<>pertoire /, puis d<>tarrez-la avec la commande:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
tar -xzvf francophones-howto.tgz
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Cela cr<63>e un r<>pertoire /french : placez-vous dans ce r<>pertoire puis
|
|||
|
tapez :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cp tables-clavier/linux-console/fr-latin9.map /usr/lib/kbd/keytables/i386/azerty/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour afficher les caract<63>res latin9, vous devrez ex<65>cuter les
|
|||
|
instructions de la section <20> polices de caract<63>re <20>.
|
|||
|
|
|||
|
|
|||
|
4.4. Polices de caract<63>re
|
|||
|
|
|||
|
|
|||
|
Si vous utilisez console-tools-1998.08.11.tar.gz, vous pourrez
|
|||
|
remplacer <20> setfont <20> par <20> consolechars <20> : ces programmes servent <20>
|
|||
|
charger une police sous linux console.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
setfont /usr/lib/kbd/consolefonts/xxxE-NN.psf.gz
|
|||
|
|
|||
|
|
|||
|
Je vous conseille pour des raisons d<>velopp<70>es plus bas :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
setfont /usr/lib/kbd/consolefonts/lat9-16u.psf.gz
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Je ne vous conseille pas les fichiers <20> lat1 <20>, qui ne supportent pas
|
|||
|
l'euro ni les autres caract<63>res fran<61>ais.
|
|||
|
|
|||
|
Vous trouverez aussi des fichiers <20> .uni <20> qui ne sont utiles que pour
|
|||
|
cr<63>er des polices ou pour ceux qui utilisent l'unicode : ils fixent
|
|||
|
des correspondances entre les <20> dessins <20> des caract<63>res dans la
|
|||
|
police et les codes des dits caract<63>res, un m<>me dessin pouvant
|
|||
|
correspondre <20> plusieurs codes dans l'example de d'unicode.
|
|||
|
|
|||
|
Pour les polices toutes faites, vous pouvez forcer cette correspondace
|
|||
|
avec l'option <20> -u fichier.uni <20>.
|
|||
|
|
|||
|
Si vous tenez <20> les installer, copiez de la m<>me mani<6E>re tous les
|
|||
|
fichiers commen<65>ant par <20> lat9 <20> et se terminant par <20> .uni <20> dans le
|
|||
|
r<>pertoire /usr/lib/kbd/consoletrans avec la commande:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cp lat9*.uni /usr/lib/kbd/consoletrans
|
|||
|
|
|||
|
|
|||
|
|
|||
|
D'habitude, setfont est ex<65>cut<75> par des scripts au d<>marrage ; par
|
|||
|
exemple dans /etc/rc.d/init.d/keytable ou /etc/rc.d/rc.local,
|
|||
|
init.d/keytable ou rc.keymap.
|
|||
|
|
|||
|
La commande :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
find /etc/rc.d -type f | xargs grep setfont
|
|||
|
|
|||
|
|
|||
|
|
|||
|
vous fournira sur le nom exact du fichier lan<61>ant setfont ; il vous
|
|||
|
suffit alors de l'<27>diter pour que vos modifications soient d<>sormais
|
|||
|
prise en en compte <20> chaque d<>marrage...
|
|||
|
|
|||
|
Les distributions RedHat et Debian constituent des exceptions : la
|
|||
|
police par d<>faut <20>tant d<>finie dans /etc/sysconfig/i18n pour la
|
|||
|
RedHat et /etc/kbd/config pour les Debian.
|
|||
|
|
|||
|
Dans /etc/sysconfig/i18n rajouter une ligne de la forme :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SYSFONT=xxxE-NN.psf
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> xxx repr<70>sente le type de police ; il doit s'agir d'une lat pour
|
|||
|
les francophones ce qui signifie ISO 8859 ou latin. Sans cela il
|
|||
|
n'y a plus de caract<63>res <20> <20>tendus <20> comme les voyelles accentu<74>s,
|
|||
|
symboles de ponctuation comme paragraphe...
|
|||
|
|
|||
|
<20> E repr<70>sente l'encodage latin, par exemple 1 pour latin1, 0 ou 9
|
|||
|
pour latin9
|
|||
|
|
|||
|
<20> NNN repr<70>sente la taille individuelle de chaque caract<63>re ; 08 est
|
|||
|
presque illisible mais 16 est un peu gros... <20> r<>gler selon les
|
|||
|
go<67>ts de chacun.
|
|||
|
|
|||
|
Je vous conseille la police lat9-16u.psf ou son <20>quivalent lat0-16.psf
|
|||
|
install<6C>e par d<>faut sur la plupart des distributions, tr<74>s souvent
|
|||
|
compress<73>e donc avec le suffixe <20> .gz <20> .
|
|||
|
|
|||
|
[ rajouter une explication sur comment installer la police ]
|
|||
|
|
|||
|
La section <20> une police, des polices <20> vous donnera plus de d<>tails
|
|||
|
sur les polices disponibles.
|
|||
|
|
|||
|
|
|||
|
4.5. Vieilles versions
|
|||
|
|
|||
|
|
|||
|
Si lors du chargement de la table de clavier vous rencontrez un
|
|||
|
message d'erreur similaire au suivant :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(guylhem@victis:guylhem)$ loadkeys fr-latin9.map
|
|||
|
Loading /usr/lib/kbd/keytables/fr-latin9.map
|
|||
|
unknown keysym 'dead_cedilla'
|
|||
|
/usr/lib/kbd/keytables/fr-latin9.map:67: parse error
|
|||
|
syntax error in map file
|
|||
|
key bindings not changed
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Cela signifie que votre version de kbd dont le programme loadkeys
|
|||
|
d<>pend est trop vieille : il faut vous procurer une version plus
|
|||
|
r<>cente du programme.
|
|||
|
|
|||
|
Il existait et existe encore des versions des tables de clavier pour
|
|||
|
ceux ne voulant ni touches mortes ni accents, mais celles-ci tombent
|
|||
|
actuellement en d<>su<73>tude puisque la grande majorit<69> des programmes
|
|||
|
prennent d<>sormais en charge ces fameuses touches mortes et les
|
|||
|
caract<63>res accentu<74>s.
|
|||
|
|
|||
|
De plus, les tables fournies avec ce HOWTO permettent de se servir des
|
|||
|
touches mortes ou de s'en passer si un programme les refuse, les deux
|
|||
|
cas ayant <20>t<EFBFBD> pr<70>vus :
|
|||
|
|
|||
|
|
|||
|
4.6. Am<41>liorations sp<73>cifiques au clavier fran<61>ais latin9
|
|||
|
|
|||
|
|
|||
|
<20>a y est, vous pouvez taper du texte latin 9 sous Linux en mode
|
|||
|
console !
|
|||
|
|
|||
|
Seules 2 touches ont <20>t<EFBFBD> modifi<66>es :
|
|||
|
|
|||
|
|
|||
|
4.6.1. a) carr<72>/cube
|
|||
|
|
|||
|
Elle sert maintenant <20> oe/OE li<6C>s ; en AltGr on y trouve les
|
|||
|
guillemets fran<61>ais.
|
|||
|
|
|||
|
Le carr<72> & le cube restent respectivement accessibles en AltGr (<28>) et
|
|||
|
Alt Gr(*), les guillemets <20>tant aussi directement accessibles avec
|
|||
|
AltGr (w) et AltGr (x), selon la norme ISO 9995 part 3 appliqu<71>e <20> la
|
|||
|
norme AZERTY fran<61>aise.
|
|||
|
|
|||
|
En r<>sum<75> :
|
|||
|
|
|||
|
<20> AltGr (oe) : <20>
|
|||
|
|
|||
|
<20> AltGr + Shift (oe) : <20>
|
|||
|
|
|||
|
<20> AltGr (w) : <20>
|
|||
|
|
|||
|
<20> AltGr (x) : <20>
|
|||
|
|
|||
|
<20> AltGr (m) : <20>
|
|||
|
|
|||
|
<20> AltGr (<28>) : <20>
|
|||
|
|
|||
|
<20> AltGr (*) : <20>
|
|||
|
|
|||
|
|
|||
|
4.6.2. b) dollar / livre / symbole mon<6F>taire international
|
|||
|
|
|||
|
|
|||
|
<20>tant donn<6E> que le symbole mon<6F>taire international n'est plus
|
|||
|
disponible dans la norme d'encodage ISO 8859-15, il a <20>t<EFBFBD> remplac<61> par
|
|||
|
la division cent<6E>simale de l'euro : le cent, disponible donc en AltGr
|
|||
|
($).
|
|||
|
|
|||
|
Dans les pr<70>c<EFBFBD>dentes versions, le dollar & la livre, des monnaies
|
|||
|
<20>trang<6E>res, avaient <20>t<EFBFBD> d<>plac<61>s pour laisser la place <20> l'euro et au
|
|||
|
cent, notre monnaie.
|
|||
|
|
|||
|
De telles modifications <20>taient permises par les recommandations
|
|||
|
officielles de l'EURO WORKSHOP mais allaient <20> l'encontre de la norme
|
|||
|
AZERTY : si la position AltGr (e) est d<>j<EFBFBD> occup<75>e sur un clavier, la
|
|||
|
position de l'euro est laiss<73>e au libre choix des programmeurs.
|
|||
|
|
|||
|
AltGr (e) sert <20> faire <20> <20> <20> depuis 1992 sous Linux, mais devant les
|
|||
|
protestations l<>gitimes d'utilisateurs disposant d'un clavier o<>
|
|||
|
l'euro est s<>rigraphi<68> en AltGr (e), j'ai du d<>placer le <20> en AltGr +
|
|||
|
Shift ($).
|
|||
|
|
|||
|
D<>sol<6F> d'avoir rompu la <20> tradition <20> linuxienne pour conserver la
|
|||
|
compatibilit<69> <20> la norme AZERTY & aux recommandations officielles de
|
|||
|
l'EURO WORKSHOP !
|
|||
|
|
|||
|
En r<>sum<75> :
|
|||
|
|
|||
|
|
|||
|
<20> AltGr (e) : euro
|
|||
|
|
|||
|
<20> AltGr ($) : cent
|
|||
|
|
|||
|
<20> AltGr + Shift ($) : <20>
|
|||
|
|
|||
|
|
|||
|
4.7. Pour les autres claviers latin9
|
|||
|
|
|||
|
|
|||
|
L'euro & les cents ont <20>t<EFBFBD> rajout<75>s respectivement en AltGr (e) & en
|
|||
|
AltGr (c).
|
|||
|
|
|||
|
La touche AltGr a donc <20>t<EFBFBD> rajout<75>e ; pour utiliser ces fonctions avec
|
|||
|
toute table de clavier, il suffit de charger other-latin9.map apr<70>s
|
|||
|
votre table nationale.
|
|||
|
|
|||
|
La plupart des am<61>liorations du clavier fran<61>ais ont <20>t<EFBFBD> transpos<6F>es
|
|||
|
aux claviers nationaux par des auteurs externes.
|
|||
|
|
|||
|
Toutefois, je ne poss<73>de pas chaque mod<6F>le de clavier et ne peut
|
|||
|
expliquer en d<>tail toutes ces modifications ; des sections
|
|||
|
sp<73>cifiques seront donc rajout<75>es par la suite par d'autres auteurs.
|
|||
|
|
|||
|
|
|||
|
4.8. Dans tous les cas
|
|||
|
|
|||
|
|
|||
|
<20> Home <20>, <20> End <20>, <20> Delete <20> et <20> BackSpace <20> ont <20>t<EFBFBD> corrig<69>es & les
|
|||
|
touches <20> Windows <20> ont <20>t<EFBFBD> correctement d<>finies, pour passer d'une
|
|||
|
console virtuelle <20> l'autre.
|
|||
|
|
|||
|
Des <20> Composes <20>, s<>quences <20> pr<70>fixer par la touche compose ( <20>
|
|||
|
Impr<70>cran <20> ou <20> Print Screen <20> par d<>faut) ont <20>t<EFBFBD> rajout<75>es, mais
|
|||
|
cela reste transparent pour l'utilisateur.
|
|||
|
|
|||
|
Par exemple:
|
|||
|
|
|||
|
<20> COMPOSE ^ suivi d'une des lettres (s,S,z,Z) sert <20> obtenir les
|
|||
|
lettres finlandaises rajout<75>es
|
|||
|
|
|||
|
<20> COMPOSE " suivi d'une des lettres (y,Y) sert <20> obtenir les y tr<74>mas
|
|||
|
franco-n<>erlandais rajout<75>s
|
|||
|
|
|||
|
<20> COMPOSE - suivi d'une des lettres (e,c,l,y) sert <20> obtenir l'euro,
|
|||
|
le cent, la livre, le yen
|
|||
|
|
|||
|
|
|||
|
5. XFree
|
|||
|
|
|||
|
|
|||
|
|
|||
|
5.1. Introduction
|
|||
|
|
|||
|
|
|||
|
Il y a quelques ann<6E>es, <20> xmodmap <20> servait <20> changer les tables de
|
|||
|
clavier sous XFree, un fichier de configuration d'ordinaire nomm<6D>
|
|||
|
/usr/X11/lib/X11/xinit/.Xmodmap <20>tant pris en charge gr<67>ce <20> votre
|
|||
|
.xinitrc ou /etc/X11/xinit/xinitrc
|
|||
|
|
|||
|
Pour convertir une table console correcte, on utilisait <20> mk_modmap <20>
|
|||
|
livr<76> avec l'archive kbd et g<>n<EFBFBD>ralement install<6C> en
|
|||
|
/usr/lib/kbd/keytables
|
|||
|
|
|||
|
Les utilisateurs d<>sirant personnaliser leur table xmodmap employaient
|
|||
|
le programme <20> xkeycaps <20>.
|
|||
|
|
|||
|
Puis XFree 2.1 et les version ult<6C>rieures ont reconnu la disposition
|
|||
|
des touches du clavier g<>r<EFBFBD>e par <20> loadkeys <20>, rendant th<74>oriquement
|
|||
|
xmodmap inutile.
|
|||
|
|
|||
|
Mais la gestion de la touche <20> COMPOSE <20> assur<75>e par XFree 3.1
|
|||
|
laissait un peu <20> d<>sirer, la table h<>rit<69>e de <20> loadkeys <20> ne servant
|
|||
|
gu<67>re.
|
|||
|
|
|||
|
Il fallait donc continuer <20> employer xmodmap, l'utilitaire logiciel
|
|||
|
standard permettant d'obliger le serveur X <20> associer les <20>v<EFBFBD>nements
|
|||
|
souris/clavier <20> des caract<63>res.
|
|||
|
|
|||
|
Sous XFree version 3.2 et post<73>rieures, <20> xkb <20> rendit xmodmap
|
|||
|
d<>finitivement obsol<6F>te.
|
|||
|
Mais ne voil<69>-t-il pas les rumeurs qui voulaient que les prochaines
|
|||
|
versions de XFree ne supporte plus les touches mortes se sont
|
|||
|
confirm<72>es !!!
|
|||
|
|
|||
|
Dans la distribution X11 du X Consortium, donc XFree86, qui en est
|
|||
|
directement issu, il n'existe plus de m<>canisme g<>n<EFBFBD>ral de gestion des
|
|||
|
touches mortes, ou des solutions approximatives obligeant <20> supprimer
|
|||
|
aussi xkb ou modifier des biblioth<74>ques de programmes !
|
|||
|
|
|||
|
|
|||
|
5.2. Mal programmer
|
|||
|
|
|||
|
|
|||
|
<20> chaque programme de bien g<>rer les touches mortes au lieu de faire
|
|||
|
confiance <20> X pour cette t<>che.
|
|||
|
|
|||
|
En r<>alit<69>, il n'est pas compliqu<71> de g<>rer des touches mortes, il
|
|||
|
suffit d'utiliser la bonne fonction, XmbLookupString() dans les
|
|||
|
programmes Motif, au lieu de XLookupString().
|
|||
|
|
|||
|
|
|||
|
5.3. Le clavier en pratique
|
|||
|
|
|||
|
|
|||
|
Quelle histoire compliqu<71>e !
|
|||
|
|
|||
|
De ce fait, elles ne fonctionnent que pour les clients X <20>
|
|||
|
internationalis<69>s <20>, c'est-<2D>-dire qui g<>rent eux-m<>mes les probl<62>mes
|
|||
|
li<6C>s aux m<>thodes d'entr<74>e de donn<6E>es des diff<66>rentes langues
|
|||
|
nationales.
|
|||
|
|
|||
|
Ceci est tr<74>s g<>nant lorsqu'on veut pouvoir saisir du texte comportant
|
|||
|
des lettres accentu<74>es, alors que le client utilis<69> n'est pas
|
|||
|
internationalis<69> !
|
|||
|
|
|||
|
|
|||
|
5.3.1. a) Solution utilisant xmodmap
|
|||
|
|
|||
|
|
|||
|
Taper :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cp fr-latin9.xmod /usr/X11R6/lib/X11/xinit/Xmodmap
|
|||
|
cp fr-latin9.xmod ~/.Xmodmap
|
|||
|
|
|||
|
|
|||
|
|
|||
|
5.3.2. b) Solution utilisant xkb (recommand<6E>e)
|
|||
|
|
|||
|
|
|||
|
Taper :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cp fr-latin9 /usr/X11R6/lib/X11/xkb/symbols
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Puis <20>diter votre XF86Config pour y rajouter dans la section <20>
|
|||
|
Keyboard <20> les lignes xkb idoines :
|
|||
|
|
|||
|
|
|||
|
Section "Keyboard"
|
|||
|
Protocol "Standard"
|
|||
|
AutoRepeat 500 30
|
|||
|
LeftAlt Meta
|
|||
|
RightAlt ModeShift # Important pour Alt-gr, mais dans les
|
|||
|
# versions r<>centes de XFree, AltGr et
|
|||
|
# RightAlt sont synonymes.
|
|||
|
|
|||
|
ScrollLock Compose # Pour faire des caract<63>res sp<73>ciaux.
|
|||
|
# Utiliser sinon une des 3 touches des
|
|||
|
# nouveaux claviers 105 touches...
|
|||
|
|
|||
|
RightCtl Control # Garder la touche normale
|
|||
|
|
|||
|
XkbKeycodes "xfree86"
|
|||
|
XkbRules "xfree86"
|
|||
|
XkbTypes "default"
|
|||
|
XkbCompat "default"
|
|||
|
XkbSymbols "fr-latin9(pc105)"
|
|||
|
XkbGeometry "pc(pc105)"
|
|||
|
XkbModel "pc105"
|
|||
|
|
|||
|
EndSection
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour cette partie Xkb, certains pr<70>f<EFBFBD>rent :
|
|||
|
|
|||
|
|
|||
|
XkbKeymap "xfree86(fr-latin9)"
|
|||
|
XkbKeycodes "xfree86"
|
|||
|
XkbSymbols "en_US(pc101)+fr-latin9"
|
|||
|
XkbGeometry "pc(pc101)"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Bien sur, remplacer <20> fr <20> par <20> cn <20>, <20> be <20>, <20> ch <20> ou <20> usx <20> selon
|
|||
|
votre clavier...
|
|||
|
|
|||
|
|
|||
|
5.3.3. c) Solution du compose
|
|||
|
|
|||
|
|
|||
|
Une autre m<>thode pour obtenir des caract<63>res 8 bits :
|
|||
|
|
|||
|
Dans /usr/X11R6/lib/X11/locale/iso8859-1/Compose se trouve une table
|
|||
|
de <20> correspondance <20> entre deux caract<63>res et un r<>sultat ; les deux
|
|||
|
caract<63>res sont <20>m<EFBFBD>lang<6E>s<EFBFBD> lors de l'appui sur la touche Compose : par
|
|||
|
exemple;
|
|||
|
|
|||
|
|
|||
|
COMPOSE suivi de <20> e <20> puis <20> ^ <20>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
a toutes les chances de vous donner <20>, y compris dans l'ordre oppos<6F>
|
|||
|
(<28> ^ <20> puis <20> e <20>)
|
|||
|
|
|||
|
Mais pour utiliser la touche Compose, vous devez l'affecter <20> une
|
|||
|
touche !
|
|||
|
|
|||
|
Le param<61>trage pr<70>conis<69>, r<>gl<67> dans XF86Config, la fait correspondre
|
|||
|
<20> la touche <20> Arr<72>t D<>fil <20> inutile sous X, par la commande :
|
|||
|
ScrollLock Compose
|
|||
|
|
|||
|
|
|||
|
|
|||
|
dans la section Keyboard.
|
|||
|
|
|||
|
Attention, sous Linux en mode console, cette touche est utile (pour
|
|||
|
bloquer temporairement la console virtuelle) et c'est <20> Impr <20>cran <20>
|
|||
|
ou <20> Print Screen <20> qui, ne servant <20> rien, est affect<63>e <20> <20> Compose
|
|||
|
<20>.
|
|||
|
|
|||
|
|
|||
|
5.3.4. d) Solution modifiant la libX11
|
|||
|
|
|||
|
|
|||
|
Thomas Quinot <Thomas.Quinot(<28>)cuivre.fdn.fr> vous propose donc sa
|
|||
|
libX11 modifi<66>e, qui g<>re les touches mortes de mani<6E>re transparente
|
|||
|
pour tous les clients.
|
|||
|
|
|||
|
Elle permet <20>galement de traiter les s<>quences compos<6F>es inconnues
|
|||
|
comme des paires de caract<63>res, par exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
~ + / = ~/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour l'utiliser :
|
|||
|
|
|||
|
<20> R<>cup<75>rez libX11-XF3.3.1.tar.gz ;
|
|||
|
|
|||
|
<20> Extrayez le fichier libX11.so.6.1 ;
|
|||
|
|
|||
|
<20> Placez-le dans /usr/X11R6/lib/ ;
|
|||
|
|
|||
|
<20> Ex<45>cutez ldconfig ;
|
|||
|
|
|||
|
<20> D<>sactivez l'extension XKB en utilisant l'option XkbDisable dans la
|
|||
|
section Keyboard de votre XF86Config.
|
|||
|
|
|||
|
|
|||
|
5.3.5. e) Est-ce n<>cessaire ?
|
|||
|
|
|||
|
|
|||
|
Personnellement, je vous recommande de ne pas toucher <20> la libX11,
|
|||
|
d'oublier xmodmap et de l'alternative xkb + fichiers latin9 en
|
|||
|
attendant un autre changement de la politique du X Consortium envers
|
|||
|
les touches mortes (ou en rajoutant les options d'internationalisation
|
|||
|
au code source de vos programmes.)
|
|||
|
|
|||
|
Actuellement, si vous n'avez pas de r<>pertoire
|
|||
|
/usr/X11R6/lib/X11/xkb/symbols/ cela signifie que vous n'utilisez pas
|
|||
|
xkb : procurez-vous donc une version plus r<>cente de X window !
|
|||
|
|
|||
|
Sans xkb, XFree se rabattra par d<>faut sur votre configuration de
|
|||
|
clavier pour Linux avec loadkeys.
|
|||
|
|
|||
|
Toutefois, la translation n'est pas parfaite et je vous recommanderais
|
|||
|
plut<75>t d'<27>viter cette option, aussi bien que l'ancien gestionnaire de
|
|||
|
clavier Xmodmap.
|
|||
|
|
|||
|
Il se peut aussi que sans aucune commande pour xkb, XFree vous
|
|||
|
consid<69>re comme utilisateur d'un clavier 7 bits !
|
|||
|
Il convient donc d'utiliser une table adapt<70>e avec xkb.
|
|||
|
|
|||
|
|
|||
|
5.4. <20> latin9 <20> ou <20> latin1 <20> ?
|
|||
|
|
|||
|
|
|||
|
Je vous conseille de choisir les tables latin9 que je maintiens <20>
|
|||
|
jour, plus r<>centes que les versions latin1, permettant d'utiliser de
|
|||
|
multiples am<61>liorations, d<>taill<6C>es dans la section clavier sous
|
|||
|
linux-console, pour disposer du plus de confort possible et plus
|
|||
|
adapt<70>es car maintenu par des francophones.
|
|||
|
|
|||
|
Les nombreuses am<61>liorations dont elles b<>n<EFBFBD>ficient permettent de
|
|||
|
pallier au d<>ficiences de nombreux programmes.
|
|||
|
|
|||
|
Par exemple, certains programmes en Motif comme Netscape (tm) ne
|
|||
|
savent pas encore g<>rer les touches mortes ... donc impossible de
|
|||
|
taper par exemple des <20> ou des <20> sur les claviers des Belges et
|
|||
|
Fran<61>ais, puisque la touche morte <20> accent circonflexe <20> est le seul
|
|||
|
moyen d'obtenir ces caract<63>res !
|
|||
|
|
|||
|
<20> fr-latin9 <20> r<>pond <20> ce probl<62>me en proposant une solution de
|
|||
|
remplacement : AltGr (voyelle) permet d'obtenir la voyelle avec un
|
|||
|
accent grave, AltGr+Shift (voyelle) permet d'obtenir la voyelle avec
|
|||
|
un tr<74>ma !
|
|||
|
|
|||
|
|
|||
|
5.5. Table de correspondances
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> AltGr (voyelle) : voyelle accent grave
|
|||
|
|
|||
|
<20> AltGr + Shift (voyelle) : voyelle tr<74>ma
|
|||
|
|
|||
|
<20> AltGr (touche au dessous de la voyelle) : voyelle majuscule accent
|
|||
|
grave
|
|||
|
|
|||
|
<20> AltGr + Shift (touche au dessous de la voyelle) : voyelle majuscule
|
|||
|
tr<74>ma
|
|||
|
|
|||
|
<20> AltGr + Shift (minuscule accentu<74>e) : majuscule accentu<74>e
|
|||
|
|
|||
|
Par exemple :
|
|||
|
|
|||
|
|
|||
|
<20> AltGr (a) : <20>
|
|||
|
|
|||
|
<20> AltGr (q) : <20>
|
|||
|
|
|||
|
<20> AltGr + Shift (<28>) : <20>
|
|||
|
|
|||
|
L'astuce marche aussi pour le c c<>dille :
|
|||
|
|
|||
|
|
|||
|
<20> AltGr + Shift (<28>) : <20>
|
|||
|
|
|||
|
Donc m<>me dans les pires conditions, si aucune touche morte ne
|
|||
|
fonctionne, on peut quand m<>me acc<63>der <20> toutes les voyelles
|
|||
|
accentu<74>es, majuscules et minuscules !
|
|||
|
|
|||
|
Vous y trouverez en plus les guillemets fran<61>ais (<28> <20>), les symboles
|
|||
|
employ<6F>s en physique (<28>, <20>, delta, phi ...), des signes de monnaies
|
|||
|
(yen, cent) ou de copyright (tm, <20>) ainsi que des lettres d'autres
|
|||
|
langues (<28>, <20> ...).
|
|||
|
|
|||
|
Tous ces signes s'obtiennent gr<67>ce <20> AltGr (lettre), par exemple AltGr
|
|||
|
(b) donne <20>, AltGr (r) donne tm, AltGr (y) donne yen...
|
|||
|
|
|||
|
Pour vous rapeller simplement de tout cel<65>, tapez par exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
more /usr/lib/kbd/keytables/i386/azerty/fr-latin9.map
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour ce qui est du choix entre latin1 et latin9... <20> vous de voir !
|
|||
|
|
|||
|
Un conseil : essayez l'un puis l'autre si vous avez le temps.
|
|||
|
|
|||
|
|
|||
|
5.6. Les polices ISO 8859-15 latin 9 sous X
|
|||
|
|
|||
|
|
|||
|
Il est bien d'avoir une table de clavier compatible latin 9, mais sans
|
|||
|
police adapt<70>e jamais vous ne verrez les caract<63>res rajout<75>s dans
|
|||
|
cette norme.
|
|||
|
|
|||
|
Il faut donc utiliser l'utilitaire de conversion <20> bdftopcf <20> qui en
|
|||
|
quelque sorte permet de compiler les polices de caract<63>res fournies.
|
|||
|
|
|||
|
Placez-vous dans le r<>pertoire de l'archive que vous avez r<>cup<75>r<EFBFBD>
|
|||
|
puis sous root, taper par exemple pour Xlat9-10x20.bdf ou un autre bdf
|
|||
|
:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
bdftopcf Xlat9-10x20.bdf > Xlat9-10x20-lat9.pcf
|
|||
|
gzip Xlat9-10x20-lat9.pcf
|
|||
|
mv Xlat9-10x20-lat9.pcf.gz /usr/X11R6/lib/X11/fonts/misc
|
|||
|
mkfontdir /usr/X11R6/lib/X11/fonts/misc
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Cel<65> cr<63>e un fichier <20> Xlat9-10x20-lat9.pcf <20> qu'il faut compresser
|
|||
|
avec gzip, on obtient alors le fichier <20> Xlat9-10x20-lat9.pcf.gz <20> qui
|
|||
|
doit <20>tre mis dans le r<>pertoire ad<61>quat, pour lequel l'index des
|
|||
|
polices de caract<63>res sera mis <20> jour.
|
|||
|
|
|||
|
Alors, ajoutez la table de composition latin9 aux compositions par
|
|||
|
d<>faut de X, sp<73>cifiques <20> l'iso 8859-1 :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cat XCompose-lat9 >> /usr/X11R6/lib/X11/locale/iso8859-1/Compose
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Nous faisons un cat vers l'ISO 8859-1, car X ne reconna<6E>t pas l'ISO
|
|||
|
8859-15 latin9.
|
|||
|
|
|||
|
De l<>, red<65>marrer X ou taper sous son compte d'utilisateur normal :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
xset +fp /usr/X11R6/lib/X11/fonts/misc
|
|||
|
|
|||
|
|
|||
|
Si vous utilisez xmodmap, lancez :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
xmodmap ~/.Xmodmap
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour choisir les polices latin9, lancer xfontsel et chercher les
|
|||
|
encodages iso8859-15.
|
|||
|
|
|||
|
Ou plus simplement, taper :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
grep Xlat9-10x20.pcf /usr/X11R6/lib/X11/fonts/misc/*
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Puis utiliser le second param<61>tre comme nom de police, par exemple
|
|||
|
avec rxvt, xiterm, aterm ou wterm:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
aterm -fn -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Cela lance un terminal X utilisant une des polices latin9.
|
|||
|
|
|||
|
|
|||
|
6. R<>glage du clavier pour les applications en mode texte
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.1. Tout d'abord
|
|||
|
|
|||
|
|
|||
|
Le huiti<74>me bit doit survivre <20> l'entr<74>e du noyau, assurez-vous-en
|
|||
|
donc avec :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
stty cs8 -istrip -parenb
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Ensuite, il convient de s'assurer que l'application est apte <20>
|
|||
|
supporter les caract<63>res 8 bits : par exemple, ispell n'est pas
|
|||
|
compil<69> pour des caract<63>res 8 bits par d<>faut : il faut le recompiler
|
|||
|
sans l'option :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
-NO8BIT
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.2. Une police, des polices...
|
|||
|
|
|||
|
|
|||
|
Avant d'aborder cette section, je vous conseille de lire
|
|||
|
l'introduction sur les polices pour appr<70>hender un peu mieux le
|
|||
|
vocabulaire de base et les diff<66>rentes normes de polices.
|
|||
|
|
|||
|
|
|||
|
6.2.1. a) Historique des polices
|
|||
|
|
|||
|
|
|||
|
De l'ASCII <20> l'Unicode, en passant par l'ISO 8859, le latin et le cp,
|
|||
|
on peut r<>sumer l'histoire des polices en grandes <20>tapes :
|
|||
|
|
|||
|
Au d<>but <20>tait l'ASCII, qui codait ses caract<63>res sur 7 bits.
|
|||
|
|
|||
|
Pr<50>vu pour des <20>tats-uniens, il <20>tait impossible d'incorporer des
|
|||
|
caract<63>res accentu<74>s <20> la norme d<>j<EFBFBD> pr<70>sente de 127 caract<63>res.
|
|||
|
|
|||
|
Ainsi vint le 8 bits qui <20>tendit le nombre de caract<63>res <20> 255 et les
|
|||
|
normes ISO 8859, latin et cp, pour les plus connues, qui vinrent
|
|||
|
pallier <20> cette d<>ficience du fait des 128 positions suppl<70>mentaires
|
|||
|
disponibles en encodant les caract<63>res sur 8 bits.
|
|||
|
|
|||
|
Mais plusieurs de ces normes <20>taient n<>cessaire du fait de
|
|||
|
l'impossibilit<69> de faire tenir les caract<63>res de toutes les langues du
|
|||
|
monde sur 8 bits.
|
|||
|
|
|||
|
La norme ISO 8859-1 latin 1, la plus utilis<69>e, se destine par exemple
|
|||
|
au langues d'Europe de l'ouest, du nord, d'Am<41>rique, la norme ISO
|
|||
|
8859-2 latin 2 est pr<70>vue pour l'Europe de l'est...
|
|||
|
|
|||
|
L'Unicode est l'un de ces standard, destin<69> <20> terme <20> remplacer les
|
|||
|
diff<66>rentes <20>volutions de l'ASCII ; comme le passage du 7 bits au 8
|
|||
|
bits il correspond <20> une extension de la place disponible, tout en
|
|||
|
reprenant l'ancienne partie comme ASCII et ISO 8859-1 latin 1 pour
|
|||
|
rester compatible avec la majorit<69> du parc install<6C>.
|
|||
|
|
|||
|
L'Unicode offre l'avantage de proposer les caract<63>res n<>cessaires <20>
|
|||
|
toutes les langues du monde, mais reste encore peu utilis<69> ou
|
|||
|
impl<70>ment<6E>.
|
|||
|
|
|||
|
En effet, il est impossible de l'utiliser en pratique sous linux-
|
|||
|
console, la m<>moire exig<69>e de la carte vid<69>o ne permettant pas de
|
|||
|
stocker tous les caract<63>res de l'Unicode, et sous X la gestion
|
|||
|
actuelle des polices rendrait son utilisation trop inconfortable.
|
|||
|
|
|||
|
Attendons un peu que les polices <20> True Type <20> se r<>pandent sous X,
|
|||
|
gr<67>ce <20> des outils comme freetype, xfstt (...) et le tr<74>s attendu
|
|||
|
XFree 4 qui devrait les supporter en natif.
|
|||
|
|
|||
|
Actuellement, la nouvelle norme europ<6F>enne ISO 8859-15 latin 9 est
|
|||
|
cens<6E>e permettre la transition vers l'Unicode en apportant <20> l'ancien
|
|||
|
ISO 8859-1 latin 1 les caract<63>res qu'il manquait actuellement.
|
|||
|
|
|||
|
Toutefois elle est partiellement incompatible avec l'Unicode puisque
|
|||
|
l'ISO 8859-1 latin 1 avait <20>t<EFBFBD> choisi comme base pour l'Unicode, mais
|
|||
|
que cette police veut compl<70>ter les failles de l'ISO 8859-1 latin 1 en
|
|||
|
y rajoutant des caract<63>res d<>j<EFBFBD> pr<70>sents dans l'Unicode...
|
|||
|
|
|||
|
Quelle complexit<69> pour de simple lettres !
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.2.2. b) ISO 8859-15 latin 9
|
|||
|
|
|||
|
|
|||
|
De nous jours, il vaut mieux installer par d<>faut la nouvelle norme
|
|||
|
ISO 8859-15 latin 9, destin<69>e <20> remplacer l'ensemble des polices
|
|||
|
europ<6F>ennes par une seule.
|
|||
|
|
|||
|
Son but est voisin de l'Unicode, mais elle a l'avantage d'<27>tre plus
|
|||
|
l<>g<EFBFBD>re que celui-ci et d'<27>tre applicable tout de suite.
|
|||
|
|
|||
|
Elle apporte notamment des caract<63>res qui manquaient beaucoup pour les
|
|||
|
Fran<61>ais et les Finlandais :
|
|||
|
|
|||
|
|
|||
|
<20> <20> e dans l'o <20> en majuscule et minuscule pour les Fran<61>ais, par
|
|||
|
exemple pour les mots oeuf, coeur, boeuf, oeil ...
|
|||
|
|
|||
|
<20> <20> s chapeau invers<72> <20> en majuscule et minuscule pour les Finlandais
|
|||
|
|
|||
|
<20> <20> z chapeau invers<72> <20> en majuscule et minuscule pour les Finlandais
|
|||
|
|
|||
|
<20> <20> l'EURO <20> pour tous les pays europ<6F>ens
|
|||
|
|
|||
|
Cette nouvelle norme, ISO 8859-15 latin 9 aussi connue sous le nom
|
|||
|
g<>n<EFBFBD>rique latin0, reste cependant encore tr<74>s peu r<>pandue par rapport
|
|||
|
<20> la norme actuelle ISO 8859-1 latin 1.
|
|||
|
|
|||
|
|
|||
|
6.2.3. c) Utiliser les polices ISO 8859-15 latin 9
|
|||
|
|
|||
|
|
|||
|
Vous n'avez besoin que d'une seule police !
|
|||
|
|
|||
|
Or il en existe plusieurs types r<>pondant diff<66>remment <20> la m<>me norme
|
|||
|
iso-8859-15 latin9 <20> latin0 <20> sous linux :
|
|||
|
|
|||
|
<20> par tradition l'opposition latN/latNu selon l'inclusion ou non
|
|||
|
d'une table de correspondance Unicode.
|
|||
|
|
|||
|
<20> en r<>alit<69> les diff<66>rences vont bien plus loin, de l'ordre dans
|
|||
|
lequel sont les caract<63>res de la police, ce qui joue sur l'aspect
|
|||
|
des applications semi graphique, les correspondances avec des
|
|||
|
caract<63>res latin1 <20> latin9 <20> Unicode ce qui a un r<>le dans la
|
|||
|
compatibilit<69> crois<69>e ou exclusive, par exemple purement Unicode...
|
|||
|
|
|||
|
J'ai donc compl<70>t<EFBFBD> par 2 types de ma cr<63>ation pour r<>pondre au mieux
|
|||
|
aux diff<66>rents besoins.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
| Encodage dans | Inclusion d'une | Compatibilit<69> | Compatibilit<69>
|
|||
|
| l'ordre iso | table Unicode | exclusive | crois<69>e
|
|||
|
--------------------------------------------------------------------------
|
|||
|
lat9 | oui | non | non | lat1 + lat9
|
|||
|
--------------------------------------------------------------------------
|
|||
|
lat9u | non | oui | non | lat1 + lat9
|
|||
|
--------------------------------------------------------------------------
|
|||
|
lat9v | oui | oui | Unicode | non
|
|||
|
--------------------------------------------------------------------------
|
|||
|
lat9w | oui | oui | non |lat1+lat9+Unicode
|
|||
|
--------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Voici plus d'explications :
|
|||
|
|
|||
|
|
|||
|
<20> les lat9 tout court ne contiennent pas de table de correspondance
|
|||
|
Unicode, ce qui fait que tous les symboles mon<6F>taires
|
|||
|
internationaux appara<72>tront comme des euro, ce qui peut poser des
|
|||
|
probl<62>mes pour les fichiers issus d'un ordinateur sous windows ; le
|
|||
|
cp1252 ou le latin1 sont <20> incompatibles <20> avec le latin9, mais ce
|
|||
|
dernier a l'avantage de fonctionner tout de suite sous linux.
|
|||
|
|
|||
|
Dans les versions r<>centes du noyau, selon le site de Yann Dirson,
|
|||
|
il semble donc que toutes les polices devraient contenir une table
|
|||
|
de correspondance Unicode...
|
|||
|
|
|||
|
<20> des lat9u encod<6F>es dans un ordre non standard, mais identique <20>
|
|||
|
celui des polices latXu de kbd, par rapport aux polices
|
|||
|
pr<70>c<EFBFBD>dentes, en amenant les m<>mes probl<62>mes avec le cp1252 et le
|
|||
|
latin1 mais en incluant une table de correspondance Unicode, ce qui
|
|||
|
permet d'avoir de jolis caract<63>res semi graphiques sous Yast, mc,
|
|||
|
ou d'autres programmes bas<61>s sur ncurses ou dialog.
|
|||
|
|
|||
|
<20> des lat9v encod<6F>es dans l'ordre officiel iso comme les lat9 mais
|
|||
|
avec une table Unicode compl<70>te : l<> aucun symbole mon<6F>taire
|
|||
|
international ne sera remplac<61> par l'euro ! Ces polices sont
|
|||
|
utiles pour <20>viter les probl<62>mes d'export, gr<67>ce <20> l'Unicode *pur*,
|
|||
|
avec une table de clavier Unicode adapt<70>e : tous les caract<63>res
|
|||
|
latin9 sont remplac<61>s par des caract<63>res Unicodes et affich<63>s
|
|||
|
ainsi, ce qui a le m<>rite d'<27>tre compatible avec le latin9,
|
|||
|
l'Unicode, d'<27>tre <20>l<EFBFBD>gant techniquement mais inutilisable <20>
|
|||
|
normalement <20> sous linux-console. Presque aucun syst<73>me n'est
|
|||
|
enti<74>rement pr<70>t pour l'Unicode !
|
|||
|
|
|||
|
Donc n'utilisez les polices lat9, lat9u ou lat9v que si vous savez ce
|
|||
|
que vous faites, je vous recommande pour ma part le meilleur compromis
|
|||
|
: les polices lat9w qui permettent de passer au latin9 imm<6D>diatement,
|
|||
|
en posant quelques probl<62>mes pour les caract<63>res latin1 qui seront
|
|||
|
remplac<61>s par leurs <20>quivalents latin9, mais sans rendre l'Unicode
|
|||
|
obligatoire comme les lat9U, sans emm<6D>ler les caract<63>res graphiques
|
|||
|
comme les lat9, et en permettant aussi d'afficher les caract<63>res
|
|||
|
sp<73>cifiques au latin9 en Unicode *pur*, <20> l'exception des caract<63>res
|
|||
|
sp<73>cifiques au latin1 donc...
|
|||
|
|
|||
|
Je vous rassure, vous n'<27>tes pas oblig<69>s de comprendre tout ce qui
|
|||
|
suit pour <20> passer <20> l'euro <20>, si effectivement vous ne savez toujours
|
|||
|
pas de quelle police vous avez besoin, un conseil : utiliser les
|
|||
|
lat9w.
|
|||
|
|
|||
|
Pour utiliser la police lat9-16.psf ou un autre lat9 .psf, vous devez
|
|||
|
pallier l'absence d'une table Unicode en en chargeant une.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
loadunimap fonts/linux-console/lat9.uni
|
|||
|
setfont fonts/linux-console/lat9-16.psf
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour utiliser la police lat9w-16.psf ou une autre lat9u, lat9v ou
|
|||
|
lat9w :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
setfont /fonts/linux-console/lat9w-16.psf
|
|||
|
|
|||
|
|
|||
|
6.2.4. d) Unicode
|
|||
|
|
|||
|
|
|||
|
Une alternative est l'Unicode, mais les programmes l'utilisant sont
|
|||
|
encore trop peu nombreux pour qu'elle soit valable.
|
|||
|
|
|||
|
Citons quand m<>me yuedit et le projet <20> 9 <20> (9term, 9wm... rien <20> voir
|
|||
|
avec l'op<6F>rateur t<>l<EFBFBD>com fran<61>ais du m<>me nom) qui utilisent l'Unicode
|
|||
|
sous X, avec plus ou moins de succ<63>s.
|
|||
|
|
|||
|
En revanche, sous linux-console, tout programme peut utiliser
|
|||
|
l'Unicode.
|
|||
|
|
|||
|
Mais, h<>las!, aussi grande que soit la m<>moire des cartes vid<69>os
|
|||
|
actuelles, elle ne peut charger l'int<6E>gralit<69> des caract<63>res d'une
|
|||
|
police Unicode.
|
|||
|
|
|||
|
Il existe donc des <20> jeux de caract<63>res <20> limit<69>s mais bien utiles
|
|||
|
pour les langues baltiques, asiatiques, est-africaines...
|
|||
|
|
|||
|
|
|||
|
6.2.5. e) Utiliser les possibilit<69>s Unicode
|
|||
|
|
|||
|
|
|||
|
Essayez par exemple ce fichier unicode-lance pour passer en mode
|
|||
|
Unicode:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#!/bin/sh
|
|||
|
echo -e '\033%8'
|
|||
|
kbd_mode -u
|
|||
|
loadkeys fr-unicode.map
|
|||
|
setfont lat9u-16.psf
|
|||
|
|
|||
|
|
|||
|
|
|||
|
et ce fichier latin-retourne pour revenir en mode latin normal:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#!/bin/sh
|
|||
|
echo -e '\033%@'
|
|||
|
kbd_mode -a
|
|||
|
loadkeys fr-latin9.map
|
|||
|
setfont lat9w-16.psf
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Essayez par exemple de lire le fichier unicode.txt, encod<6F> en Unicode,
|
|||
|
une fois unicode-lance activ<69>.
|
|||
|
|
|||
|
Vous ne verrez sinon qu'un texte mal encod<6F>, sans caract<63>res 8 bits,
|
|||
|
comme cet exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Ceci est un essai de texte en UNICODE !
|
|||
|
|
|||
|
On constate que les bétas (<28>~_) et autres lettres 8 bits ne sortent pas bien
|
|||
|
si l'on regarde ce fichier en mode latin !
|
|||
|
Les accents éè<C3A9>| ù non plus d'ailleurs...
|
|||
|
Enfin, heureusement que l'on ne marche pas sur des <20>~RUFS, enfin, <20>~Sufs !
|
|||
|
<20>~Ga marche moyennement disons !
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.3. Les locales, messages en Fran<61>ais
|
|||
|
|
|||
|
|
|||
|
Linux en 'version fran<61>aise' existe... mais ne semble pas facile <20>
|
|||
|
obtenir.
|
|||
|
|
|||
|
La librairie locale(7) [cf aussi perllocale, setlocale, getlocale]
|
|||
|
utilis<69>e par la librairie C se sert de variables d'environnement pour
|
|||
|
d<>finir les pr<70>f<EFBFBD>rences linguistiques et nationales.
|
|||
|
|
|||
|
Pablo Saratxaga r<>pondait ainsi <20> Pascal Rigaux en prenant l'exemple
|
|||
|
de sort :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
PR> J'ai d<>couvert aujourd'hui la variable d'environnement LANG. C'est assez
|
|||
|
PR> surprenant de se retrouver avec de l'aide en fran<61>ais (m<>me si elle n'est pas
|
|||
|
PR> toujours aussi pr<70>cise que la version anglaise) quand on fait ls --help.
|
|||
|
|
|||
|
C'est agr<67>able n'est-ce pas ?
|
|||
|
|
|||
|
PR> Par contre je ne comprend pas pourquoi un programme comme sort(1) n'utilise pas
|
|||
|
PR> cette information pour obtenir un tri acceptable pour les accents (du genre ne
|
|||
|
PR> pas mettre <20> <20>tre <20> apr<70>s <20> zen <20>). Il devrait au moins proposer une option de
|
|||
|
PR> ce genre.
|
|||
|
|
|||
|
Il faudrait regarder les sources de sort...
|
|||
|
La fonction <20> utiliser est strcoll() :
|
|||
|
|
|||
|
****
|
|||
|
|
|||
|
STRCOLL(3) Manuel du programmeur Linux STRCOLL(3)
|
|||
|
|
|||
|
|
|||
|
NOM
|
|||
|
strcoll - Comparaison de deux cha<68>nes suivant la localisa-
|
|||
|
tion en cours.
|
|||
|
|
|||
|
SYNOPSIS
|
|||
|
#include <string.h>
|
|||
|
|
|||
|
int strcoll (const char *s1, const char *s2);
|
|||
|
|
|||
|
DESCRIPTION
|
|||
|
La fonction strcoll() compare les deux cha<68>nes s1 et s2.
|
|||
|
Elle renvoie un entier inf<6E>rieur, <20>gal ou sup<75>rieur a z<>ro
|
|||
|
si s1 est respectivement inf<6E>rieure, <20>gale, ou sup<75>rieure
|
|||
|
a s2. La comparaison est effectu<74>e en se basant sur la
|
|||
|
localisation en cours pour la cat<61>gorie LC_COLLATE. (Voir
|
|||
|
setlocale(3)).
|
|||
|
|
|||
|
****
|
|||
|
|
|||
|
qui est donc l'<27>quivalent de strcmp() mais qui tiens compte des locales.
|
|||
|
Il faudra s'<27>crire un strcasecoll() aussi pour bien faire, en utilisant
|
|||
|
toupper()/tolower() qui d'apr<70>s la page de manuel supporte les locales.
|
|||
|
|
|||
|
Qui s'y colle ? <20>a devrait <20>tre assez simple <20> r<>aliser sur un syst<73>me GNU
|
|||
|
en tout cas.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Il existe diff<66>rente variables <20> exporter, avec chacune une fonction
|
|||
|
sp<73>cifique ; le format standardis<69> est:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
langue[_PAYS[.CHARSET]][@variante]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Les crochets d<>notent l'optionalit<69>, par exemple: 'fr', 'fr_BE',
|
|||
|
|
|||
|
Les fonctions de la libc, celle de GNU en tout cas, iront chercher
|
|||
|
dans <20> l'ordre d<>croissant <20> si on peut dire; par exemple si on
|
|||
|
sp<73>cifie avec 'fr_CH' puis avec 'fr'.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> LC_COLLATE d<>finit les <20>quivalences de caract<63>res pour les
|
|||
|
comparaisons (<28> peut <20>tre <20>quivalent <20> ae), pour les ligatures et
|
|||
|
pour les c<>sures.
|
|||
|
|
|||
|
<20> LC_CTYPE d<>finit les caract<63>res affichables
|
|||
|
|
|||
|
<20> LC_MONETARY d<>finit le format et le symbole de la monnaie utilis<69>e
|
|||
|
|
|||
|
<20> LC_NUMERIC d<>finit le format num<75>rique : regroupement, marqueur
|
|||
|
d<>cimal...
|
|||
|
|
|||
|
<20> LC_MESSAGES d<>finit la langue des messages
|
|||
|
|
|||
|
<20> LC_TIME d<>finit le format de la date, les noms des jours et des
|
|||
|
mois
|
|||
|
|
|||
|
<20> LC_ALL valeur par d<>faut des variables pr<70>c<EFBFBD>dentes : si une
|
|||
|
LC_ n'est pas d<>finie, LC_ALL est prise en compte, sinon la libc se
|
|||
|
rabat sur LANG.
|
|||
|
|
|||
|
<20> LANG diff<66>rent des variables pr<70>c<EFBFBD>dentes, contient le code
|
|||
|
langue au format iso : fr,en,de...
|
|||
|
|
|||
|
<20> LANGUAGE liste des locales par ordre de pr<70>f<EFBFBD>rence s<>par<61>es par
|
|||
|
deux points (fr:es:dk:en), c'est une particularit<69> GNU, fort utile
|
|||
|
si un document n'existe que dans une langue comme certaines pages
|
|||
|
de manuel
|
|||
|
|
|||
|
Les valeurs utilisables pour les francophones sont:
|
|||
|
|
|||
|
|
|||
|
<20> fr fran<61>ais g<>n<EFBFBD>rique
|
|||
|
|
|||
|
<20> fr_FR fran<61>ais de France
|
|||
|
|
|||
|
<20> fr_BE fran<61>ais de Belgique
|
|||
|
|
|||
|
<20> fr_CH fran<61>ais de Suisse
|
|||
|
|
|||
|
<20> fr_LU fran<61>ais du Luxembourg
|
|||
|
|
|||
|
<20> fr_CA fran<61>ais du Canada
|
|||
|
|
|||
|
Par exemple, si vous <20>tre un Fran<61>ais de France, il suffit d'indiquer
|
|||
|
sous bash :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
export LANGUAGE=fr_FR
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
bash# export LANGUAGE=es_ES
|
|||
|
bash# ls fichier_n_existant_pas
|
|||
|
ls: fichier_n_existant_pas: No existe el fichero o el directorio
|
|||
|
bash# export LANGUAGE=de_DE
|
|||
|
bash# ls fichier_n_existant_pas
|
|||
|
ls: fichier_n_existant_pas: Datei oder Verzeichnis nicht gefunden
|
|||
|
bash# export LANGUAGE=en_US
|
|||
|
bash# ls fichier_n_existant_pas
|
|||
|
ls: fichier_n_existant_pas: No such file or directory
|
|||
|
bash# export LANGUAGE=fr_FR
|
|||
|
bash# ls fichier_n_existant_pas
|
|||
|
ls: fichier_n_existant_pas: Aucun fichier ou r<>pertoire de ce type
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Toutefois, avec le passage <20> l'euro, ces locales ne sont plus
|
|||
|
adapt<70>es.
|
|||
|
|
|||
|
Je vous conseille donc d'utiliser dans les pays de l'union passant <20>
|
|||
|
l'euro le suffixe <20> @euro <20> :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
export LC_ALL="fr_FR@euro"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour cela, installer les nouveaux fichiers sources de locales dans
|
|||
|
/usr/share/i18n/ en lan<61>ant :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cp charmaps/ISO-8859-15 /usr/share/i18n/charmaps/ISO-8859-15
|
|||
|
cp locales/* /usr/share/i18n/locales/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Alors, r<>g<EFBFBD>n<EFBFBD>rer les locales <20> binaires <20> de /usr/share/locales, par
|
|||
|
exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
|
|||
|
|
|||
|
|
|||
|
|
|||
|
fr_FR@euro inclus les caract<63>res latin 9, c'est utile pour
|
|||
|
l'utilisation de LC_COLLATE et LC_CTYPE en fait, et la nouvelle
|
|||
|
monnaie unique.
|
|||
|
|
|||
|
Pour le moment, le Franc Fran<61>ais (FRF) est toujours la monnaie
|
|||
|
officielle en France par exemple, mais lorsque ce sera l'euro, il
|
|||
|
suffira de remplacer la locale fr_FR par fr_FR@euro.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cd /usr/lib/locales
|
|||
|
rm -fr fr_FR
|
|||
|
mv fr_FR@euro fr_FR
|
|||
|
|
|||
|
|
|||
|
|
|||
|
La solution <20> @euro <20> est support<72>e par les autres UNIX comme Solaris.
|
|||
|
|
|||
|
Pour les shell scripts, il peut <20>tre utile de rajouter <20> LC_TIME=C <20>
|
|||
|
pour emp<6D>cher la date d'<27>tre localis<69>, emb<6D>tant pour les grep et
|
|||
|
autres qui cherchent <20> Mon <20> <20> Tue <20>... et non <20> Lun <20>, <20> Mar <20>...
|
|||
|
|
|||
|
Les donn<6E>es correspondantes aux pr<70>f<EFBFBD>rences se trouvent g<>n<EFBFBD>ralement
|
|||
|
dans /usr/share/locale. S'ils manquent, vous pouvez r<>cup<75>rer leur
|
|||
|
source
|
|||
|
|
|||
|
Concernant les autres fichiers abord<72>s dans cet article, vous les
|
|||
|
trouverez avec les autres fichiers de cet HOWTO sur ma page.
|
|||
|
|
|||
|
|
|||
|
6.4. Son linux en fran<61>ais
|
|||
|
|
|||
|
|
|||
|
Pour se faire SON linux en fran<61>ais il faut en pratique disposer des
|
|||
|
sources de la libc et d'un minimum de comp<6D>tences en langage C ; ces
|
|||
|
manipulations sont inutiles pour l'utilisateur standard de Linux qui
|
|||
|
se contentera d'utiliser les locales de la section pr<70>c<EFBFBD>dente.
|
|||
|
|
|||
|
Mais voici donc, pour la bonne bouche, quelques renseignements
|
|||
|
collect<63>s...
|
|||
|
|
|||
|
Laurent Chemla nous pilote :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Si j'ai suivi, il y a deux trucs qui font la m<>me chose, d'o<> embrouille, les
|
|||
|
locales et un truc appel<65> nls.
|
|||
|
|
|||
|
Les locales, sous Linux, <20>a va par d<>faut dans /usr/lib/locale,
|
|||
|
et <20>a contient de quoi pr<70>ciser entre autres le format des
|
|||
|
nombres (LC_NUMERIC), les retours des fonctions ctype (isalpha etc) (LC_CTYPE),
|
|||
|
le format des sommes d'argent (LC_MONETARY), le format des dates (LC_TIME) et
|
|||
|
encore d'autres d<>tails. Sur certains Unix, il y a aussi LC_MESSAGES,
|
|||
|
qui contient les messages de l'OS dans la langue choisie par la variable
|
|||
|
d'environnement LC_MESSAGES. Pas sous Linux. Sous Linux, c'est nls qui fait
|
|||
|
<20>a, et de fait, nls g<>re un fichier qui est dans /etc/locale/.
|
|||
|
(NDG : De nos jours, ils se trouvent plut<75>t dans /usr/lib/locale)
|
|||
|
D'o<> l'embrouille. Ils auraient mis <20>a dans /usr/lib/nls, comme
|
|||
|
tout le monde, <20>a aurait <20>vite la confusion. Mais bon.
|
|||
|
|
|||
|
Donc, si l'on veut se tenir <20> jour d'nls, il suffit d'aller dans les
|
|||
|
sources de libc/nls, faire <20> make french <20> et copier libc.dat dans
|
|||
|
/etc/locale/C/libc.dat et toc, tous les messages sont en fran<61>ais. Y compris
|
|||
|
ceux des programmes qui n'utilisent pas setlocale(): c'est perror() qui fait le
|
|||
|
boulot (du moins je suppose).
|
|||
|
|
|||
|
Si l'on veut en plus que les programmes qui utilisent setlocale() utilisent nos
|
|||
|
r<>gles fran<61>aises, l<> il faut aller dans les sources de
|
|||
|
libc/locale et dans chacun des sous-r<>pertoires jeter un oeil sur le
|
|||
|
fichier exemple, le modifier pour le fran<61>ais (c'est des tout petits
|
|||
|
fichiers), et faire <20> make <20>, avant de copier le r<>sultat dans
|
|||
|
/usr/lib/local/fr/ et de faire un <20> export LC_ALL=fr <20>.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Autre astuce pour m<>nager les vieux logiciels :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cd /usr/lib
|
|||
|
ln -sf /usr/share/locale .
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Ne pas oublier de t<>l<EFBFBD>charger sur le site du lip6 :
|
|||
|
|
|||
|
|
|||
|
<20> Les pages de manuel en fran<61>ais, archive man-fr-*, adapt<70>es par C.
|
|||
|
Blaess. Il suffit d'extraire le contenu de l'archive dans le
|
|||
|
r<>pertoire /usr/man/fr.
|
|||
|
|
|||
|
<20> Une int<6E>ressante documentation technique : locale.fr, par P.
|
|||
|
D'Cruze, adapt<70>e par <20>. Dumas
|
|||
|
|
|||
|
Pour en apprendre davantage lire la page de manuel de <20> locale <20> :
|
|||
|
biblioth<74>que de pages de manuel 5 ou 7 :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
bash# man 5 locale
|
|||
|
bash# man 7 locale
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.5. Les variables
|
|||
|
|
|||
|
|
|||
|
Ces variables doivent <20>tre export<72>es <20> chaque login : mettez les donc
|
|||
|
dans .bashrc et .bash_login, .tcshrc ou /etc/profile :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# pour tcsh, utiliser setenv au lieu de export, par exemple <20>setenv LANG fr<66>
|
|||
|
|
|||
|
# Les locales
|
|||
|
LC_CTYPE=ISO-8859-1
|
|||
|
LANGUAGE=fr
|
|||
|
LC_MESSAGES=fr
|
|||
|
LC_ALL=fr
|
|||
|
LANG=fr
|
|||
|
LESSCHARSET=latin1
|
|||
|
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET
|
|||
|
|
|||
|
# Les raccourcis : sans ll ou d, impossible de voir les fichiers comprenant des
|
|||
|
# caract<63>res 8 bits ...
|
|||
|
alias q="cd .."
|
|||
|
alias ll="ls --color=auto -a -N -l"
|
|||
|
alias d="ls --color=auto -a -N"
|
|||
|
alias indent="indent -kr"
|
|||
|
alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"
|
|||
|
|
|||
|
# Au cas o<> Del/BackSpace ne fonctionne pas, essayez l'un des deux :
|
|||
|
#stty erase ^?
|
|||
|
#stty erase ^H
|
|||
|
|
|||
|
|
|||
|
|
|||
|
N'oubliez pas : tous les fichiers ici cit<69>s dont le nom commence par <20>
|
|||
|
. <20> doivent se trouver dans votre r<>pertoire maison /
|
|||
|
|
|||
|
|
|||
|
6.6. Les caract<63>res 8 bits dans les programmes utilisant readline
|
|||
|
tels bash ou ncftp...
|
|||
|
|
|||
|
|
|||
|
Readline est une librairie de saisie de caract<63>res avec historique et
|
|||
|
compl<70>tion ; elle est utilis<69>e par de nombreux programmes comme bash,
|
|||
|
ncftp, gnuplot...
|
|||
|
|
|||
|
Par d<>faut, le 8e bit sert <20> coder la touche Meta.
|
|||
|
|
|||
|
Elle est utilis<69>e pour coder certaines commandes mais la touche <20>
|
|||
|
Escape <20> ou <20> <20>chap <20> peut la remplacer.
|
|||
|
|
|||
|
Si vous souhaitez voir et saisir des accents avec les applications
|
|||
|
compil<69>es avec readline, comme bash pour les versions sup<75>rieures <20>
|
|||
|
1.13, ajoutez ceci dans votre fichier $INPUTRC, par d<>faut ~/.inputrc)
|
|||
|
:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# Permettre de rentrer & recevoir des caract<63>res accentu<74>s
|
|||
|
set meta-flag on
|
|||
|
set convert-meta off
|
|||
|
set input-meta on
|
|||
|
set output-meta on
|
|||
|
|
|||
|
# Pas de bip audible mais visible
|
|||
|
# set bell-style visible
|
|||
|
|
|||
|
# Pour faire marcher Home, End, Delete, Esc + Delete & Esc + BackSpace
|
|||
|
"\e[1~":beginning-of-line
|
|||
|
"\e[3~":delete-char
|
|||
|
"\e[4~":end-of-line
|
|||
|
"\e\C-h": backward-kill-word
|
|||
|
"\e\e[3~": kill-word
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Cela vous permettra d'effacer des caract<63>res vers l'avant avec <20>
|
|||
|
Delete <20> et vers l'arri<72>re avec <20> BackSpace <20>, ceci n'<27>tant pas pr<70>vu
|
|||
|
sur les tables de clavier par d<>faut <20> mimant <20> le comportement d'un
|
|||
|
clavier de console VT100 .
|
|||
|
|
|||
|
Les deux derni<6E>res options vous permettront d'utiliser <20> Home <20> et <20>
|
|||
|
End <20> pour aller au d<>but et <20> la fin de la ligne en cours d'<27>dition.
|
|||
|
|
|||
|
Pour pouvoir employer une touche il suffit d'obtenir son code et
|
|||
|
l'associer <20> une fonction gr<67>ce <20> ce fichier ; pour obtenir le code
|
|||
|
d'une touche invoquer cat puis appuyer sur la touche : son code
|
|||
|
appara<72>t.
|
|||
|
|
|||
|
Le code physique :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
^[
|
|||
|
|
|||
|
|
|||
|
|
|||
|
correspond <20> la s<>quence d'<27>chappement.
|
|||
|
|
|||
|
Par exemple, si le code de <20> Home <20> est <20> ^[[7 <20> il suffit d'ajouter
|
|||
|
une ligne :
|
|||
|
|
|||
|
"\e[7~": beginning-of-line
|
|||
|
|
|||
|
|
|||
|
|
|||
|
au .inputrc.
|
|||
|
|
|||
|
Plus de documentation est disponible sur la page de manuel de bash,
|
|||
|
section READLINE.
|
|||
|
|
|||
|
On peut aussi, gr<67>ce <20> la variable d'environnement INPUTRC, utiliser
|
|||
|
un fichier commun <20> tous les utilisateurs.
|
|||
|
|
|||
|
Enfin, je vous recommande d'utiliser ce fichier .bashrc <20> placer dans
|
|||
|
votre r<>pertoire maison :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# ~/.bashrc : ex<65>cut<75> par bash(1) pour les shells lanc<6E>s apr<70>s le login.
|
|||
|
|
|||
|
# Le path
|
|||
|
PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/local/bin"
|
|||
|
|
|||
|
# Le prompt
|
|||
|
PS1="(\u@\h:\W)$ "
|
|||
|
|
|||
|
# L'utilisateur
|
|||
|
ENV=$HOME/.bashrc
|
|||
|
USERNAME="votre nom"
|
|||
|
|
|||
|
# Les locales
|
|||
|
_CTYPE=ISO-8859-1
|
|||
|
LANGUAGE=fr
|
|||
|
LC_MESSAGES=fr
|
|||
|
LC_ALL=fr
|
|||
|
LANG=fr
|
|||
|
LESSCHARSET=latin1
|
|||
|
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET
|
|||
|
|
|||
|
# Les raccourcis
|
|||
|
alias q="cd .."
|
|||
|
alias ll="ls --color=auto -a -N -l"
|
|||
|
alias d="ls --color=auto -a -N"
|
|||
|
alias indent="indent -kr"
|
|||
|
alias elm-box="elm -f ~/Mail/Inbox"
|
|||
|
alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"
|
|||
|
|
|||
|
# Au cas o<> Del/BackSpace ne fonctionne pas, essayez l'un des deux :
|
|||
|
#stty erase
|
|||
|
#stty erase ^H
|
|||
|
|
|||
|
# Refuser le talk & le write
|
|||
|
#mesg n
|
|||
|
|
|||
|
# Permettre les coredumps
|
|||
|
#ulimit -c nombre_max_de_Ko
|
|||
|
|
|||
|
#Fixer le masque de cr<63>ation de fichiers
|
|||
|
#umask 022
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Le fichier .bash_profile ou .bash_login, ex<65>cut<75> par bash(1) lors des
|
|||
|
logins, y est strictement identique mais peut, si vous le voulez,
|
|||
|
pr<70>senter des diff<66>rences pour afficher par exemple une citation en
|
|||
|
la<6C>ant le programme <20> fortune <20>.
|
|||
|
|
|||
|
|
|||
|
6.7. zsh
|
|||
|
|
|||
|
Celui-ci devrait se contenter d'un stty pass8.
|
|||
|
|
|||
|
Si cela ne suffisait pas, rajouter dans le .zshrc ou dans /etc/zshrc:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
bindkey "\e[2~" yank
|
|||
|
bindkey "\e[3~" delete-char
|
|||
|
bindkey "\e[1~" beginning-of-line
|
|||
|
bindkey "\e[4~" end-of-line
|
|||
|
bindkey "\e[5~" up-line-or-history
|
|||
|
bindkey "\e[6~" down-line-or-history
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.8. tcsh
|
|||
|
|
|||
|
|
|||
|
Pour tcsh, placer, dans le fichier /etc/csh.login ou dans les fichiers
|
|||
|
.tcshrc des utilisateurs concern<72>s, les variables indiqu<71>es plus haut
|
|||
|
en rempla<6C>ant export par setenv:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
setenv LC_CTYPE=ISO-8859-1
|
|||
|
setenv LANGUAGE=fr
|
|||
|
setenv LC_MESSAGES=fr
|
|||
|
setenv LC_ALL=fr
|
|||
|
setenv LANG=fr
|
|||
|
setenv LESSCHARSET=latin1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.9. Pour tous les shells
|
|||
|
|
|||
|
|
|||
|
Remplacer 'iso_8859_1' par 'iso-8859-1' si cela ne fonctionne pas,
|
|||
|
voire french.iso88591.fr_FR ou fr_BR, fr_CA, fr_CH, fr_LU...
|
|||
|
|
|||
|
<20> propos de LANG, il vaut mieux <20>viter fr_FR et lui pr<70>f<EFBFBD>rer fr car
|
|||
|
certains programmes ne passent pas vraiment par la resolution de
|
|||
|
locales mais lisent LANG directement...
|
|||
|
|
|||
|
Si nls est install<6C>, les routines correspondantes sont utilis<69>es,
|
|||
|
sinon tcsh agit en iso_8859_1, quelle que soit les valeurs donn<6E>es <20>
|
|||
|
LANG et LC_CTYPE : cf. la section NATIVE LANGUAGE SYSTEM de tcsh(1).
|
|||
|
|
|||
|
Selon le Danish-HOWTO, utiliser :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(guylhem@victis:tcsh)# setenv LC_CTYPE ISO-8859-1
|
|||
|
(guylhem@victis:tcsh)# stty pass8
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.10. L'heure
|
|||
|
|
|||
|
|
|||
|
Rien n'est plus facile que de laisser <20> Linux le soin de passer de
|
|||
|
l'heure d'<27>t<EFBFBD> <20> l'heure d'hiver et r<>ciproquement...
|
|||
|
|
|||
|
a) D'abord, quelle heure est-il :-) ?
|
|||
|
|
|||
|
Apr<70>s avoir regard<72> sur la pendule la plus proche de vous, tapez :
|
|||
|
|
|||
|
clock
|
|||
|
|
|||
|
puis
|
|||
|
|
|||
|
date
|
|||
|
|
|||
|
La premi<6D>re heure est celle du bios, la seconde celle calcul<75>e par
|
|||
|
Linux <20> partir de /etc/zoneconfig.
|
|||
|
|
|||
|
Pour peu que vous ayez install<6C> timezone, votre machine peut jongler
|
|||
|
ais<69>ment entre les diff<66>rents fuseaux horaires... ce que les DOS ou
|
|||
|
Windows ne permettent pas !
|
|||
|
|
|||
|
b) L'heure du choix !
|
|||
|
|
|||
|
De l<>, deux possibilit<69>es : soit vous d<>cidez de laisser l'heure
|
|||
|
syst<73>me <20> l'heure locale, peu pratique, except<70> si vous h<>bergez aussi
|
|||
|
sur votre disque dur ces syst<73>mes d'exploitation peu <20>volu<6C>, ne
|
|||
|
sachant m<>me pas exploiter les fuseaux horaires, soit vous passez <20>
|
|||
|
l'heure de Greenwich, Linux se chargeant de l'adapter <20> votre fuseau
|
|||
|
horaire.
|
|||
|
|
|||
|
Dans ce cas, les grands voyages <20> l'<27>tranger avec un portable tout
|
|||
|
neuf <20>quip<69> de Linux se feront en toute simplicit<69> : le dernier
|
|||
|
paragraphe vous expliquera comment changer de fuseau horaire
|
|||
|
facilement...
|
|||
|
|
|||
|
c) Le r<>glage
|
|||
|
|
|||
|
Pour proc<6F>der, regardez d'abord si l'heure syst<73>me retourn<72>e par clock
|
|||
|
est l'heure locale ou l'heure de Greenwich.
|
|||
|
|
|||
|
Vous avez bien regard<72> une pendule comme je vous le conseille plus
|
|||
|
haut, n'est-ce pas ?
|
|||
|
|
|||
|
Si clock vous retourne l'heure locale, il va falloir jongler un peu
|
|||
|
avec les fuseaux horaires, sinon passez directement <20> l'<27>tape <20>
|
|||
|
r<>glage du fuseau <20>.
|
|||
|
|
|||
|
|
|||
|
<20> Pour les fran<61>ais, belges wallons et suisses romands :
|
|||
|
|
|||
|
Vous <20>tes normalement dans une zone horaire MET (Medium European Time,
|
|||
|
soit GMT+1).
|
|||
|
|
|||
|
La zone <20> MET DST <20> correspond elle <20> l'heure d'<27>t<EFBFBD> active (GMT + 2).
|
|||
|
|
|||
|
Selon les d<>cisions futures de la cour europ<6F>enne, l'heure d'<27>t<EFBFBD> <20>
|
|||
|
daylight savings <20> risque d'<27>tre abandonn<6E>... ce qui compliquera
|
|||
|
cette explication !
|
|||
|
|
|||
|
|
|||
|
<20> Pour les canadiens fran<61>ais :
|
|||
|
|
|||
|
Vous <20>tes dans une zone horaire GMT-4 si vous habitez autour de
|
|||
|
Montr<74>al .
|
|||
|
Pour les autres provinces, consulter un dictionnaire !
|
|||
|
|
|||
|
Premi<6D>rement, effacez le fichier /etc/localtime ou
|
|||
|
/usr/lib/zoneinfo/localtime (l'emplacement varie selon les
|
|||
|
distributions ; si vous avez les deux fichiers, effacez /etc/localtime
|
|||
|
: l'autre fichier doit certainement <20>tre un lien vers /etc/localtime).
|
|||
|
|
|||
|
D<>s lors, clock et date doivent vous retourner la m<>me heure...
|
|||
|
|
|||
|
|
|||
|
<20> Pour les canadiens fran<61>ais : utilisez GMT+4
|
|||
|
|
|||
|
|
|||
|
<20> Pour les fran<61>ais, belges wallons et suisses romands :
|
|||
|
|
|||
|
Si vous lisez ce document en <20>t<EFBFBD>, le d<>calage de l'heure locale par
|
|||
|
rapport <20> l'heure de Greenwich est de deux heures, on va donc mettre
|
|||
|
temporairement le fuseau en GMT-2, soit vous lisez ce document en
|
|||
|
hiver et il convient de remplacer tous les <20> 2 <20> par des <20> 1 <20> dans
|
|||
|
les exemples suivants...
|
|||
|
|
|||
|
GMT-2 ?!!? Alors que le fuseau est GMT+2 ?
|
|||
|
|
|||
|
Ceci va vous retourner l'heure de Greenwich dont on a besoin pour
|
|||
|
r<>gler le syst<73>me : tapez :
|
|||
|
|
|||
|
ln -sf /usr/lib/zoneinfo/Etc/GMT-2 /etc/zoneconfig
|
|||
|
|
|||
|
clock
|
|||
|
|
|||
|
date
|
|||
|
|
|||
|
L'heure calcul<75>e correspond donc <20> l'heure de Greenwich, l'heure
|
|||
|
syst<73>me <20> l'heure locale... soit l'inverse de ce que l'on veut.
|
|||
|
|
|||
|
Un simple : clock -w
|
|||
|
|
|||
|
Va alors mettre l'heure du syst<73>me en heure de Greenwich, utilisant
|
|||
|
pour cela l'heure locale invers<72>e volontairement avec l'heure syst<73>me.
|
|||
|
|
|||
|
d) R<>gler le fuseau horaire :
|
|||
|
|
|||
|
Tapez alors : ln -sf /usr/lib/zoneinfo/Europe/Votre-ville
|
|||
|
/etc/zoneconfig
|
|||
|
|
|||
|
Et voil<69> ! Le syst<73>me est <20> l'heure de Greenwich, la conversion vers
|
|||
|
le fuseau horaire local et l'heure d'<27>t<EFBFBD> se faisant automatiquement.
|
|||
|
|
|||
|
Si vous habitez hors Europe, proc<6F>dez de m<>me en rempla<6C>ant les <20> -2 <20>
|
|||
|
par <20> X <20>, X repr<70>sentant l'oppos<6F> de votre d<>calage horaire (par
|
|||
|
exemple -4 au Qu<51>bec, donc X=+4...)
|
|||
|
|
|||
|
e) Modifier le fuseau horaire :
|
|||
|
|
|||
|
Si vous partez <20> l'<27>tranger, il est alors simple de modifier l'heure
|
|||
|
locale de votre portable : par exemple si vous partez pour Moscou :
|
|||
|
|
|||
|
ln -sf /usr/lib/zoneinfo/Europe/Moscow /etc/zoneconfig
|
|||
|
|
|||
|
Tr<54>s simple et tr<74>s utile : plus besoin de se souvenir du d<>calage
|
|||
|
horaire (plus ou moins X heures) puisque Linux se charge d<>sormais de
|
|||
|
tout !
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.11. vi
|
|||
|
|
|||
|
|
|||
|
Normalement, aucune modification n'est n<>cessaire <20> part l'utilisation
|
|||
|
de loadkeys (d<>taill<6C>e plus haut).
|
|||
|
|
|||
|
Ce fichier .vimrc pourrait toutefois vous <20>tre utile si vous utilisez
|
|||
|
vim au lieu d'elvis :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
" Les guillemets anglais <20> " <20> signifient <20> mis en commentaire <20>
|
|||
|
|
|||
|
" <20>viter un avertissement <20> version incorrecte <20> :
|
|||
|
version 4.0
|
|||
|
|
|||
|
" Utiliser les d<>fauts de vim, bien mieux
|
|||
|
set nocompatible
|
|||
|
|
|||
|
" Autoriser le <20> BackSpace <20> sur tout :
|
|||
|
set bs=2
|
|||
|
|
|||
|
" Police <20> utiliser sous X11 :
|
|||
|
"set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
|
|||
|
|
|||
|
" Fixer la c<>sure automatique de la ligne <20> N caract<63>res :
|
|||
|
set tw=72
|
|||
|
|
|||
|
" Faire appara<72>tre les tabulations et les espaces
|
|||
|
set list
|
|||
|
|
|||
|
" Changer les d<>fauts pour voir les espaces inutiles et les tabulations
|
|||
|
set listchars=tab:<3A><>,trail:<3A>
|
|||
|
hi nontext ctermfg=red
|
|||
|
hi nontext ctermbg=blue
|
|||
|
|
|||
|
" Indentation (pour les programmeurs) :
|
|||
|
" set cindent
|
|||
|
|
|||
|
" R<>glages souris :
|
|||
|
"set mouse=a
|
|||
|
|
|||
|
" Ligne
|
|||
|
set nowrapscan
|
|||
|
|
|||
|
" Montrer les correspondances :
|
|||
|
set showmatch
|
|||
|
|
|||
|
" Montrer le mode
|
|||
|
set showmode
|
|||
|
|
|||
|
" Indentation intelligente (pour les programmeurs) :
|
|||
|
" set uc=0
|
|||
|
|
|||
|
" Faire fonctionner BackSpace :
|
|||
|
set t_kD=^?
|
|||
|
|
|||
|
" Doit se trouver apr<70>s
|
|||
|
map ^H X
|
|||
|
|
|||
|
" Faire fonctionner Delete :
|
|||
|
map \e[3~ x
|
|||
|
|
|||
|
" Cacher la souris lorsqu'on tape :
|
|||
|
set mousehide
|
|||
|
|
|||
|
" Faire voir les correspondances lors de recherches :
|
|||
|
" set hlsearch
|
|||
|
|
|||
|
" Colorer <20> l'int<6E>rieur des commentaires en C :
|
|||
|
let c_comment_strings=1
|
|||
|
|
|||
|
" Couleur pour xiterm, rxvt, nxterm, color-xterm :
|
|||
|
if has("terminfo")
|
|||
|
set t_Co=8
|
|||
|
set t_Sf=\e[3%p1%dm
|
|||
|
set t_Sb=\e[4%p1%dm
|
|||
|
else
|
|||
|
set t_Co=8
|
|||
|
set t_Sf=\e[3%dm
|
|||
|
set t_Sb=\e[4%dm
|
|||
|
endif
|
|||
|
|
|||
|
" Coloration syntaxique :
|
|||
|
if ett_Co > 1
|
|||
|
syntax on
|
|||
|
endif
|
|||
|
|
|||
|
" Autoriser l'<27>dition de fichiers gzipp<70>s
|
|||
|
|
|||
|
augroup gzip
|
|||
|
" Supprimer toutes les autocommandes
|
|||
|
au!
|
|||
|
autocmd BufReadPre,FileReadPre *.gz set bin
|
|||
|
autocmd BufReadPost,FileReadPost *.gz '[,']!gunzip
|
|||
|
autocmd BufReadPost,FileReadPost *.gz set nobin
|
|||
|
autocmd BufReadPost,FileReadPost *.gz execute ":doautocmd BufReadPost " . expand("%:r")
|
|||
|
|
|||
|
autocmd BufWritePost,FileWritePost *.gz !mv <afile> <afile>:r
|
|||
|
autocmd BufWritePost,FileWritePost *.gz !gzip <afile>:r
|
|||
|
|
|||
|
autocmd FileAppendPre *.gz !gunzip <afile>
|
|||
|
autocmd FileAppendPre *.gz !mv <afile>:r <afile>
|
|||
|
autocmd FileAppendPost *.gz !mv <afile> <afile>:r
|
|||
|
autocmd FileAppendPost *.gz !gzip <afile>:r
|
|||
|
augroup END
|
|||
|
|
|||
|
augroup bzip
|
|||
|
au!
|
|||
|
autocmd BufReadPre,FileReadPre *.bz2 set bin
|
|||
|
autocmd BufReadPost,FileReadPost *.bz2 '[,']!bunzip2
|
|||
|
autocmd BufReadPost,FileReadPost *.bz2 set nobin
|
|||
|
autocmd BufReadPost,FileReadPost *.bz2 execute ":doautocmd BufReadPost " . expand("%:r")
|
|||
|
autocmd BufWritePost,FileWritePost *.bz2 !mv <afile> <afile>:r
|
|||
|
autocmd BufWritePost,FileWritePost *.bz2 !bzip2 <afile>:r
|
|||
|
|
|||
|
autocmd FileAppendPre *.bz2 !bunzip2 <afile>
|
|||
|
autocmd FileAppendPre *.bz2 !mv <afile>:r <afile>
|
|||
|
autocmd FileAppendPost *.bz2 !mv <afile> <afile>:r
|
|||
|
autocmd FileAppendPost *.bz2 !bzip2 <afile>:r
|
|||
|
augroup END
|
|||
|
|
|||
|
augroup cprog
|
|||
|
au!
|
|||
|
autocmd BufRead * set formatoptions=tcql nocindent comments&
|
|||
|
autocmd BufRead *.c,*.h set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
|
|||
|
augroup END
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.12. Emacs
|
|||
|
|
|||
|
|
|||
|
Voici un fichier de configuration de base pour employer les accents.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;;
|
|||
|
;; Fichier .emacs: initialisation d'emacs
|
|||
|
;; Tir<69> du Guide du Rootard
|
|||
|
;;
|
|||
|
|
|||
|
(display-time) ;; Pour avoir l'heure dans la barre d'<27>tat
|
|||
|
(setq display-time-24hr-format t) ;; Format 24 heures
|
|||
|
|
|||
|
;; Nouveaux modes
|
|||
|
(autoload 'c++-mode "cplus-md" "C++ Editing Mode" t)
|
|||
|
(autoload 'perl-mode "perl-mode" "Perl Editing Mode" t)
|
|||
|
(autoload 'c-mode "c-mode" "C Editing Mode" t)
|
|||
|
; mieux vaudrait utiliser le "cc-mode"
|
|||
|
|
|||
|
(autoload 'jargon-mode "jargon" "Jargon Mode" t)
|
|||
|
|
|||
|
;; Auto-Mode Settings : positionne le mode selon l'extension
|
|||
|
(setq auto-mode-alist
|
|||
|
(append '(("\.c$" . c-mode) ;; utilise le mode C++ m<>me pour C
|
|||
|
("\.h$" . c-mode)
|
|||
|
("\.C$" . c++-mode)
|
|||
|
("\.H$" . c++-mode)
|
|||
|
("\.cc$" . c++-mode)
|
|||
|
("\.C$" . c++-mode)
|
|||
|
("\.pl$" . perl-mode) ;; Perl
|
|||
|
("/tmp/snd\.[0-9]*" . text-mode);; Text (pour le courriel)
|
|||
|
("[Rr][Ee][0-9]*" . text-mode)
|
|||
|
("\.ada$" . ada-mode) ;; Ada
|
|||
|
("\.spec$" . ada-mode)
|
|||
|
("\.body$" . ada-mode)
|
|||
|
("makefile$" . makefile-mode) ;; Makefile
|
|||
|
("Makefile$" . makefile-mode)
|
|||
|
("Imakefile$" . makefile-mode))
|
|||
|
auto-mode-alist))
|
|||
|
|
|||
|
; Remappages vari<72>s <20> mettre ici
|
|||
|
(global-set-key "\eg" 'goto-line) ;; ESC G = Aller <20> une ligne
|
|||
|
|
|||
|
(put 'eval-expression 'disabled nil)
|
|||
|
|
|||
|
;; Accents...
|
|||
|
(standard-display-european 1)
|
|||
|
(load-library "iso-syntax")
|
|||
|
(set-input-mode (car (current-input-mode))
|
|||
|
(nth 1 (current-input-mode))
|
|||
|
0)
|
|||
|
|
|||
|
;; Sous X-Window, texte en couleurs (C/C++/Shell/Makefile,etc)
|
|||
|
(cond (window-system
|
|||
|
(setq hilit-mode-enable-list '(not text-mode)
|
|||
|
hilit-background-mode 'light
|
|||
|
hilit-inhibit-hooks nil
|
|||
|
hilit-inhibit-rebinding nil)
|
|||
|
(require 'hilit19)
|
|||
|
))
|
|||
|
(if (not (equal window-system ""))
|
|||
|
(global-set-key "\C-?" 'delete-char))
|
|||
|
))
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Le Keyboard-HOWTO conseille quand <20> lui :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(standard-display-european t)
|
|||
|
(set-input-mode nil nil 1)
|
|||
|
(require 'iso-syntax)
|
|||
|
(load-library "iso-insert.el")
|
|||
|
(define-key global-map [?\C-.] 8859-1-map)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Utilisez une version au moins <20>gale <20> 19.27, modifiez le fichier
|
|||
|
global (commun <20> tous les utilisateurs) /usr/lib/emacs/site-lisp/site-
|
|||
|
start.el ou le ./emacs de chaque utilisateur concern<72> pour y ajouter :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(standard-display-european t)
|
|||
|
(set-input-mode (car (current-input-mode))
|
|||
|
(nth 1 (current-input-mode))
|
|||
|
0)
|
|||
|
(global-set-key [delete] 'delete-char)
|
|||
|
(global-set-key [home] 'beginning-of-line)
|
|||
|
(global-set-key [end] 'end-of-line)
|
|||
|
(global-set-key [prior] 'scroll-down)
|
|||
|
(global-set-key [next] 'scroll-up)
|
|||
|
(global-set-key [C-right] 'forward-word)
|
|||
|
(global-set-key [C-left] 'backward-word)
|
|||
|
(global-set-key [C-prior] 'beginning-of-buffer)
|
|||
|
(global-set-key [C-next] 'end-of-buffer)
|
|||
|
(global-set-key "\033[A" 'previous-line)
|
|||
|
(global-set-key "\033[B" 'next-line)
|
|||
|
(global-set-key "\033[C" 'forward-char)
|
|||
|
(global-set-key "\033[D" 'backward-char)
|
|||
|
(global-set-key "\033[H" 'beginning-of-line)
|
|||
|
(global-set-key "\033[Y" 'end-of-line)
|
|||
|
(global-set-key "\033[1~" 'beginning-of-line)
|
|||
|
(global-set-key "\033[2~" 'overwrite-mode)
|
|||
|
;; le delete-char peut correspondre <20> \004 ou <20> \033[3~
|
|||
|
(global-set-key "\033[3~" 'delete-char)
|
|||
|
(global-set-key "\033[4~" 'end-of-line)
|
|||
|
(global-set-key "\033[5~" 'scroll-down)
|
|||
|
(global-set-key "\033[6~" 'scroll-up)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour les autres versions :
|
|||
|
|
|||
|
|
|||
|
<20> 19.19 :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(standard-display-european 1)
|
|||
|
(set-input-mode (car (current-input-mode))
|
|||
|
(nth 1 (current-input-mode))
|
|||
|
0)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Lire <20> ce propos le fichier emacs.info.
|
|||
|
|
|||
|
<20> 19.22 :
|
|||
|
|
|||
|
|
|||
|
(load-library "iso-transl")
|
|||
|
(standard-display-european t)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> Autres :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(standard-display-european 1)
|
|||
|
(load-library "iso-transl")
|
|||
|
|
|||
|
|
|||
|
|
|||
|
XEmacs les accepte lui par d<>faut sans broncher mais peut des fois
|
|||
|
rencontrer des probl<62>mes avec les BackSpaces dans le mini-buffer en
|
|||
|
console.
|
|||
|
|
|||
|
Ajouter dans le .emacs :
|
|||
|
|
|||
|
|
|||
|
(if (eq window-system 'x)
|
|||
|
(global-set-key (read-kbd-macro "DEL") 'delete-char)
|
|||
|
(or (global-set-key "^[[3~" 'delete-char))
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Le mode ispell d'emacs a un certain nombre de dictionnaires pr<70>d<EFBFBD>finis
|
|||
|
qui ne sont pas forcement ceux qui sont en place sur le syst<73>me.
|
|||
|
|
|||
|
Si vous constatez des probl<62>mes, vous devez red<65>finir la liste ispell-
|
|||
|
dictionary-alist des dictionnaires.
|
|||
|
|
|||
|
Cette liste contient :
|
|||
|
|
|||
|
<20> le nom du dictionnaire
|
|||
|
|
|||
|
<20> la liste des caract<63>res composant un mot
|
|||
|
|
|||
|
<20> la lise oppos<6F>e des caract<63>res ne composant pas un mot
|
|||
|
|
|||
|
<20> les caract<63>res de liaison <20> l'int<6E>rieur des mots ("-", "'"...)
|
|||
|
|
|||
|
<20> vrai ou faux si ces caract<63>res peuvent <20>tre pr<70>sents en plusieurs
|
|||
|
exemplaire dans le mot
|
|||
|
|
|||
|
<20> une liste d'arguments pour ispell
|
|||
|
|
|||
|
<20> le mode d'ispell (tex, nroff..)
|
|||
|
|
|||
|
Par exemple, dans le fichier .emacs :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(setq ispell-dictionary-alist
|
|||
|
'((nil ; francais.aff
|
|||
|
"[A-Za-z<><7A><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]" "[^A-Za-z<><7A><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
|
|||
|
"[---']" nil ("-n") "~nroff")
|
|||
|
("english" ; rosbif
|
|||
|
"[A-Za-z]" "[^A-Za-z]" "[---']" nil ("-B") nil)
|
|||
|
("american" ; yankee
|
|||
|
"[A-Za-z]" "[^A-Za-z]" "[---']" nil nil nil)
|
|||
|
("francais" ; fran<61>ais
|
|||
|
"[A-Za-z<><7A><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]" "[^A-Za-z<><7A><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
|
|||
|
"[---']" nil ("-n") "~nroff")
|
|||
|
("francais-TeX" ; fran<61>ais
|
|||
|
"[A-Za-z<><7A><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\\]" "[^A-Za-z<><7A><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\\]"
|
|||
|
"[---'^`\"]" t nil "~tex")
|
|||
|
("espanol" ; espa~nol.aff
|
|||
|
"[A-Za-z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]" "[^A-Za-z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
|
|||
|
"[---'^`\"]" t nil "~nroff")
|
|||
|
("dansk" ; danois et norv<72>gien
|
|||
|
"[A-Za-z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]" "[^A-Za-z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
|
|||
|
"[---'^`\"]" t nil "~nroff")
|
|||
|
))
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Le dictionnaire "francais-TeX" est un lien symbolique sur "francais"
|
|||
|
qui permet d'ajouter une entr<74>e pour les accents <20> la TeX (ex: \'e).
|
|||
|
|
|||
|
Si vous utilisez X11, vous voudrez peut-<2D>tre reconstruire les menus et
|
|||
|
il vous faudra recharger une partie de lisp/loaddefs.el dans votre
|
|||
|
.emacs :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(setq ispell-menu-map nil)
|
|||
|
|
|||
|
(if ispell-menu-map-needed
|
|||
|
(let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist)))
|
|||
|
name)
|
|||
|
;; Can put in defvar when external defines are removed.
|
|||
|
(setq ispell-menu-map (make-sparse-keymap "Spell"))
|
|||
|
(while dicts
|
|||
|
(setq name (car (car dicts))
|
|||
|
dicts (cdr dicts))
|
|||
|
(if (stringp name)
|
|||
|
(define-key ispell-menu-map (vector (intern name))
|
|||
|
(cons (concat "Select " (capitalize name))
|
|||
|
(list 'lambda () '(interactive)
|
|||
|
(list 'ispell-change-dictionary name))))))))
|
|||
|
|
|||
|
(if ispell-menu-map-needed
|
|||
|
(progn
|
|||
|
;; Define commands in opposite order you want them to appear in menu.
|
|||
|
(define-key ispell-menu-map [ispell-change-dictionary]
|
|||
|
'("Change Dictionary" . ispell-change-dictionary))
|
|||
|
(define-key ispell-menu-map [ispell-kill-ispell]
|
|||
|
'("Kill Process" . ispell-kill-ispell))
|
|||
|
(define-key ispell-menu-map [ispell-pdict-save]
|
|||
|
'("Save Dictionary" . (lambda () (interactive) (ispell-pdict-save t))))
|
|||
|
(define-key ispell-menu-map [ispell-complete-word]
|
|||
|
'("Complete Word" . ispell-complete-word))
|
|||
|
(define-key ispell-menu-map [ispell-complete-word-interior-frag]
|
|||
|
'("Complete Word Frag" . ispell-complete-word-interior-frag))
|
|||
|
(define-key ispell-menu-map [ispell-continue]
|
|||
|
'("Continue Check" . ispell-continue))
|
|||
|
(define-key ispell-menu-map [ispell-region]
|
|||
|
'("Check Region" . ispell-region))
|
|||
|
(define-key ispell-menu-map [ispell-word]
|
|||
|
'("Check Word" . ispell-word))
|
|||
|
(define-key ispell-menu-map [ispell-buffer]
|
|||
|
'("Check Buffer" . ispell-buffer))
|
|||
|
(define-key ispell-menu-map [ispell-message]
|
|||
|
'("Check Message" . ispell-message))
|
|||
|
(define-key ispell-menu-map [ispell-help]
|
|||
|
'("Help" . (lambda () (interactive) (describe-function 'ispell-help))))
|
|||
|
(put 'ispell-region 'menu-enable 'mark-active)))
|
|||
|
|
|||
|
(fset 'ispell-menu-map (symbol-value 'ispell-menu-map))
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.13. less
|
|||
|
|
|||
|
|
|||
|
/etc/profile ou les fichiers de d<>marrage du shell (comme .bashrc et
|
|||
|
.bash_profile dans votre r<>pertoire maison) doivent contenir :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
export LESSCHARSET=latin1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Comme fichier .lessrc je vous recommande :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\e[B forw-line
|
|||
|
\e[A back-line
|
|||
|
\e[6~ forw-scroll
|
|||
|
\e[5~ back-scroll
|
|||
|
\e[1~ goto-line
|
|||
|
\e[4~ goto-end
|
|||
|
\e[C next-file
|
|||
|
\e[D prev-file
|
|||
|
\eOA back-line
|
|||
|
\eOB forw-line
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Pour rentrer un Esc (parfois nomm<6D> <20>chap) taper <20> \e <20> ou, sous vi,
|
|||
|
mettez vous en mode insertion avec i puis tapez <20> ctrl+v <20> et enfin <20>
|
|||
|
Esc <20>.
|
|||
|
|
|||
|
Ce fichier permet d'utiliser les touches <20> Home <20>, <20> End <20>, <20> Page_Up
|
|||
|
<20> & <20> Page_Down <20>.
|
|||
|
|
|||
|
Pour s'en servir, taper :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
lesskey -o .less .lessrc
|
|||
|
|
|||
|
|
|||
|
|
|||
|
N'oubliez pas de mettre le fichier .less dans votre r<>pertoire maison
|
|||
|
: il permet d'employer les touches fl<66>ch<63>es, <20> Page_Up <20>, <20> Page_Down
|
|||
|
<20>, <20> Home <20> et <20> End <20>.
|
|||
|
|
|||
|
Ne pas n<>gliger la page de manuel de less car il peut <20>tre int<6E>ressant
|
|||
|
de changer la valeur de sa variable d'environnement de configuration
|
|||
|
("LESS").
|
|||
|
|
|||
|
J'utilise : '-C -M -i -x2'
|
|||
|
|
|||
|
|
|||
|
6.14. ls
|
|||
|
|
|||
|
|
|||
|
Utilisez les options :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
-N --color=auto
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ou, plus simplement, d<>finissez dans les fichiers de d<>marrage de
|
|||
|
votre shell les alias suivants permettant de voir les fichiers dont le
|
|||
|
nom comprend des caract<63>res 8 bits :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
alias ll="ls --color=auto -N -l -a"
|
|||
|
alias d="ls --color=auto -N"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Un simple d remplacera le classique ls, en y ajoutant la couleur,
|
|||
|
alors que ll vous offrira une liste compl<70>te de tous les fichiers
|
|||
|
pr<70>sents dans le r<>pertoire, avec leurs attributs, leurs tailles...
|
|||
|
|
|||
|
--color=auto est pr<70>f<EFBFBD>rable car --color=yes fera avoir des codes
|
|||
|
escape lorsqu'on redirige vers un fichier ou un programme o<> si le
|
|||
|
terminal ne supporte pas la couleur.
|
|||
|
|
|||
|
|
|||
|
6.15. flex
|
|||
|
|
|||
|
|
|||
|
Donnez l'option :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
-8
|
|||
|
|
|||
|
|
|||
|
|
|||
|
si l'analyseur g<>n<EFBFBD>r<EFBFBD> doit accepter les entr<74>es 8-bits (bien s<>r qu'il
|
|||
|
doit le faire !).
|
|||
|
|
|||
|
|
|||
|
6.16. elm
|
|||
|
|
|||
|
|
|||
|
Rajoutez ces trois lignes dans votre .elm/elmrc :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
charset = iso-8859-1
|
|||
|
displaycharset = iso-8859-1
|
|||
|
textencoding = 8bit
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.17. col
|
|||
|
|
|||
|
|
|||
|
Assurez-vous :
|
|||
|
|
|||
|
1) qu'il a <20>t<EFBFBD> corrig<69> et fasse un
|
|||
|
|
|||
|
|
|||
|
|
|||
|
setlocale(LC_CTYPE,"");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
2) de d<>finir
|
|||
|
|
|||
|
|
|||
|
|
|||
|
LC_CTYPE=ISO-8859-1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
dans l'environment.
|
|||
|
|
|||
|
|
|||
|
6.18. rlogin
|
|||
|
|
|||
|
|
|||
|
Utilisez l'option :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
-8
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.19. joe
|
|||
|
|
|||
|
|
|||
|
Utiliser joe 2.8 ou plus r<>cent qui devraient fonctionner apr<70>s
|
|||
|
<20>dition du fichier de configuration : placer l'option -asis dans
|
|||
|
/usr/lib/joerc en premi<6D>re colonne.
|
|||
|
|
|||
|
|
|||
|
6.20. TeX et LaTeX
|
|||
|
|
|||
|
|
|||
|
Le plus simple consiste <20> employer GuTemberg, une distribution de
|
|||
|
LaTeX avec tous les d<>fauts r<>gl<67>s pour des francophones par des
|
|||
|
francophones !
|
|||
|
|
|||
|
Mais si vous pr<70>f<EFBFBD>rez une version standard non modifi<66>e, il suffit
|
|||
|
d'ajouter au d<>but de chaque fichier :
|
|||
|
|
|||
|
|
|||
|
<20> Pour LaTeX:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\documentstyle[isolatin]{article}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> Pour LaTeX2e:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\documentclass[12pt,a4paper]{letter}
|
|||
|
\usepackage{isolatin1}
|
|||
|
\usepackage[french]{babel}
|
|||
|
\usepackage{t1enc}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ou alors :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\usepackage[latin1]{inputenc}
|
|||
|
\usepackage[T1]{fontenc}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Au cas o<> votre distribution soit trop vieille pour l'inclure,
|
|||
|
isolatin.sty est disponible s<>par<61>ment
|
|||
|
|
|||
|
Pour gs et xdvi, il faut utiliser des options sp<73>ciales (sur ma
|
|||
|
machine, ce sont des alias). En effet, ils sont souvent configur<75>s
|
|||
|
pour un papier <20>tats-unien dit <20> l<>gal <20>, de taille proche, mais non
|
|||
|
exactement <20>gale, <20> celle du standard <20> A4 <20>.
|
|||
|
|
|||
|
Ces options sont les suivantes :
|
|||
|
|
|||
|
gs -sPAPERSIZE=a4 xdvi -paper a4 ghostview -a4
|
|||
|
|
|||
|
Pour que dvips convertisse les documents dans un format papier a4, il
|
|||
|
faut sp<73>cifier dans le fichier config.ps (le chemin varie en fonction
|
|||
|
des versions de LaTeX) : /usr/lib/texmf/dvips/config.ps ou .dvipsrc
|
|||
|
|
|||
|
@ a4 210mm 297mm @+ ! %%DocumentPaperSizes: a4 @+ %%PaperSize: a4 @+
|
|||
|
%%BeginPaperSize: a4 @+ a4
|
|||
|
|
|||
|
Sinon ajoutez <20> votre .Xresources :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
XDvi.paper: a4
|
|||
|
Ghostview.pageMedia: A4
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.21. Manuel
|
|||
|
|
|||
|
|
|||
|
Tout d'abord, il faut vous procurer les pages de manuel Linux
|
|||
|
traduites en fran<61>ais
|
|||
|
|
|||
|
Si vous utilisez une distribution RedHat ou Debian, celles-ci sont
|
|||
|
pr<70>sentes sur le c<>d<EFBFBD>rom : il suffit de les s<>lectionner lors de
|
|||
|
l'installation.
|
|||
|
|
|||
|
De l<>, deux possibilit<69>s :
|
|||
|
|
|||
|
|
|||
|
<20> soit vous ne voulez que des manuels en Fran<61>ais, auquel cas il faut
|
|||
|
faire un :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
export MANPATH=/usr/man/fr_FR
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NB: fr_FR se remplace par fr_BE, fr_CA, fr_CH ou fr_LU selon le pays
|
|||
|
concern<72>.
|
|||
|
|
|||
|
<20> soit vous pr<70>f<EFBFBD>rez par d<>faut des manuels en Fran<61>ais et si la page
|
|||
|
n'existe pas, vous vous rabattez vers l'Anglais, il suffira alors
|
|||
|
de taper :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
export LANG=fr
|
|||
|
|
|||
|
|
|||
|
man ira chercher dans le <20> MANPATH <20> des pages en <20> LANG <20> par d<>faut
|
|||
|
et se rabattra sinon sur des pages en anglais.
|
|||
|
|
|||
|
Si vous d<>sirez installer la page de manuel expliquant la norme ISO
|
|||
|
8859-15 latin 9, il faut installer le fichier iso_8859_15.7.gz :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
cp standard/iso_8859_15.7.gz /usr/local/man/man7/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.22. Correcteur orthographique ispell
|
|||
|
|
|||
|
|
|||
|
Vous pouvez vous le procurer sur le site original d'Hydro Qu<51>bec ou
|
|||
|
sur le mirroir du lip6
|
|||
|
|
|||
|
Un fichier LISEZMOI explique pas <20> pas et en Fran<61>ais l'installation.
|
|||
|
|
|||
|
|
|||
|
6.23. Les claviers 105 touches
|
|||
|
|
|||
|
|
|||
|
Aussi appel<65>s <20> claviers Microsoft (tm) <20>, ils ont trois touches de
|
|||
|
plus que les claviers normaux.
|
|||
|
|
|||
|
Comment s'en servir ?
|
|||
|
|
|||
|
En mode console, <20>diter french.map et d<>commenter les lignes en
|
|||
|
parlant !
|
|||
|
|
|||
|
De m<>me pour french (pour Xwindow).
|
|||
|
|
|||
|
|
|||
|
6.24. PGP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Attention, dans certains pays totalitaires, l'utilisation de logiciels
|
|||
|
de cryptographie est consid<69>r<EFBFBD>e comme usage d'armes de guerre, ce qui
|
|||
|
est punissable par la loi !
|
|||
|
|
|||
|
Sautez donc ce paragraphe si votre l<>gislation locale ne permet pas
|
|||
|
d'utiliser des logiciels de cryptographie.
|
|||
|
|
|||
|
Premi<6D>rement, il faut se procurer pgp-international (<28> cause de
|
|||
|
probl<62>mes de patentes et de l<>gislation sur l'export d'armes de
|
|||
|
guerre, il existe pgp-us et pgp-international, ce dernire <20>tant dot<6F>
|
|||
|
d'un algorithme encore plus puissant) sur le site norv<72>gien de PGP
|
|||
|
|
|||
|
Ensuite, mettre dans votre r<>pertoire maison, dans un sous r<>pertoire
|
|||
|
.pgp les fichiers :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
config.txt
|
|||
|
language.idx
|
|||
|
pgpdoc1.txt
|
|||
|
pgpdoc2.txt
|
|||
|
language.txt
|
|||
|
fr.hlp
|
|||
|
en.hlp
|
|||
|
pgp.hlp
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Enfin, <20>diter le fichier .pgp/config.txt pour y rajouter :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Language = fr
|
|||
|
CharSet = latin1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Lisez ensuite .pgp/fr.hlp pour apprendre <20> vous servir de pgp !
|
|||
|
|
|||
|
|
|||
|
6.25. Impression en mode ascii
|
|||
|
|
|||
|
|
|||
|
Pour l'impression de texte simple, beaucoup d'imprimantes attendent
|
|||
|
des lettres en codage IBM (cp850) comme sous MS DOS.
|
|||
|
|
|||
|
Si le fichier est cod<6F> en latin1, on doit utiliser <20> recode
|
|||
|
latin1:ibmpc <20> (<28> placer dans les filtres lpr de /etc/ par exemple),
|
|||
|
sous peine de voir imprimer des <20> alpha <20> <20> la place de <20> <20> <20>, et
|
|||
|
autres choses du m<>me genre.
|
|||
|
|
|||
|
Il existe d'autres utilisation au programme recode : <20> ibmpc:lat1 <20> ou
|
|||
|
<20> lat1:ibmpc <20> (de ou vers MS-DOS) ou <20> applemac <20> pour Macintosh
|
|||
|
(tm).
|
|||
|
|
|||
|
|
|||
|
6.26. Unicode/latin/cp... je n'ai pas compris ce dernier paragraphe !
|
|||
|
|
|||
|
|
|||
|
Voici donc plus d'explications gr<67>ce <20> Pablo Sartxaga (srtxg <20>
|
|||
|
chanae.alphanet.ch) dans un message explicant la diff<66>rence
|
|||
|
Unicode/latin/cp :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
DB> quand on lance <20> setfont <20> sans argument
|
|||
|
DB> il semble qu'on obtienne le m<>me effet que setfont -u none
|
|||
|
|
|||
|
Normal et logique.
|
|||
|
|
|||
|
DB> --> en un mot la table de conversion <20> Unicode <20> est d<>sactiv<69>e
|
|||
|
DB> ce qui transforme le <20> e accent aig<69> (dec 130) <20> en <20> th<74>ta (dec 233) <20>
|
|||
|
|
|||
|
Non. Il ne transforme rien du tout, il affiche tout simplement sans
|
|||
|
*aucune* transformation au contraire, <20> toi de t'assurer que la police
|
|||
|
que tu charges poss<73>des les glyphes <20> la bonne place par rapport au codage
|
|||
|
de caract<63>res que tu utilises (iso-8859-1).
|
|||
|
|
|||
|
Autrement dit si ta police n'est pas iso-8859-1 tu dois dire <20> setfont de
|
|||
|
faire des mappings; en particulier s ic'est une police qui utilise l'encodage
|
|||
|
DOS cp437 tu fais <20> setfont -u cp437 nomdelapolice <20>. Moi par exemple j'aime
|
|||
|
beaucoup la police <20> t.fnt <20> de la Slackware, et j'ai donc quelque part
|
|||
|
dans /etc/rc.d/* une ligne <20> setfont -u cp437 t.fnt <20>
|
|||
|
|
|||
|
Ou alors tu modifies la police (il y a un logiciel qui fait cela avec
|
|||
|
interface svgalib, et un autre nomm<6D> <20> chedit <20> qui permet de cr<63>er des
|
|||
|
images an ascii-art, un fichier par caract<63>re (256 fichiers donc), il te
|
|||
|
suffit alors de jongler avec les fichiers pour les changer de place et
|
|||
|
r<>g<EFBFBD>nerer la police). Note cependant que le codage cp437 n'inclut pas
|
|||
|
tous les caract<63>res de iso-8859-1, notamment manquent quasi toutes les
|
|||
|
majuscules accentu<74>es, et les lettres <20><> n<>cessaires en portugais. Tu
|
|||
|
peux toujours modifier la police pour cr<63>er ces caract<63>res manquants.
|
|||
|
|
|||
|
DB> sur ma Slackware 3.2, <20> aucun moment setfont n'appara<72>t dans les scripts
|
|||
|
DB> de d<>marrage ni dans les ~/profiles et autres ~/.bashrc
|
|||
|
|
|||
|
Donc c'est la police dans la ROM de la carte video qui est utilis<69>e.
|
|||
|
|
|||
|
DB> et pourtant cette
|
|||
|
DB> conversion est effectu<74>e correctement puisque j'ai les accents <20> l'<27>cran.
|
|||
|
|
|||
|
Je suppose que le kernel pr<70>suppose (<28> juste titre) que la police en ROM vid<69>o
|
|||
|
est au codage cp437.
|
|||
|
|
|||
|
DB> une fois que je lance <20> setfont -u none <20> je perds donc les accents.
|
|||
|
|
|||
|
Normal, car d<>s lors que tu charges une police tu est suppos<6F> savoir ce que
|
|||
|
tu veux (au contraire de la police en ROM o<> tu n'as pas le choix).
|
|||
|
|
|||
|
Autrefois (du temps des 1.2.* et avant) le d<>faut de setfont <20>tait cp437
|
|||
|
(et il n'utilisait pas encore des tables Unicode, mais on pouvait
|
|||
|
changer par \e(B et \e(K entre codage cp437 et iso (on peut toujours
|
|||
|
d'ailleurs)), mais maintenant le d<>faut est <20> straight to font <20>, pas de
|
|||
|
conversion.
|
|||
|
|
|||
|
DB> j'en conclue que Linux utilise la police r<>sidente par d<>faut de
|
|||
|
DB> la carte EGA/VGA
|
|||
|
|
|||
|
DB> [Q] --> comment retrouver cette police ?
|
|||
|
|
|||
|
Il y a un programme nomm<6D> <20> restoretextmode <20> qui est assez populaire
|
|||
|
aupr<70>s des possesseurs de certaines cartes graphiques chez qui le
|
|||
|
passage X11 -> console bousille les polices; il permet de faire un dump
|
|||
|
sur un fichier; il faudrait donc que tu le lances avant de modifier la
|
|||
|
police avec setfont. Le paquetage s'appelle quelque chose comme
|
|||
|
SVGATextMode ou quelque chose d'approchant.
|
|||
|
|
|||
|
DB> [Q] --> quelle table appeler pour la remapper et ravoir les accents ?
|
|||
|
|
|||
|
setfont -u cp437 policedos
|
|||
|
|
|||
|
Ou sinon, si tu ne veux pas lancer setfont et tu veux donc garder la
|
|||
|
police de la carte graphique; essaye un <20> echo -e \033(B <20> (l'ennuyant
|
|||
|
c'est que tu dois le faire dans chaque console)
|
|||
|
|
|||
|
DB> (en g<>n<EFBFBD>ral setfont -u def.uni (par exemple) renvoie une
|
|||
|
DB> erreur : PIO_UNIMAPCLR: Invalid argument et je reste
|
|||
|
DB> en caracteres <20> graphiques <20>)
|
|||
|
|
|||
|
Ah ? Chez moi <20>a marche; quels kernel et kbd as-tu ?
|
|||
|
|
|||
|
Sinon je te conseille <20> cp437 <20> plut<75>t que <20> def <20>, ils font _presque_ la m<>me
|
|||
|
chose, mais <20> cp437 <20> est visuellement plus agr<67>able car il remplace les
|
|||
|
caract<63>res non pr<70>sents dans la police par les lettres non accentu<74>es si c'est
|
|||
|
des lettres, C pour <20> et R pour <20> et par un carr<72> blanc pour le reste, ce qui
|
|||
|
permet de garder le formatage et la lecture agr<67>ables; <20> def <20> lui ne mets
|
|||
|
totu simplement rien pour les caract<63>res manquants, si bien que tu te
|
|||
|
trouves avec des trous, ce qui est l'horreur si tu <20>dites un texte par
|
|||
|
exemple avec vi, puisque le curseur est affich<63> plusieurs caract<63>res
|
|||
|
<20> gauche <20> cause des caract<63>res de largeur nulle :)
|
|||
|
|
|||
|
Essaye aussi la police <20> t.fnt <20>, elle est assez jolie, toute en rondeurs, je la
|
|||
|
trouve r<>posante, et quand je dois utiliser un PC avec les polices style
|
|||
|
courier par d<>faut je trouve <20>a tr<74>s agressif je me demande comment ils
|
|||
|
peuvent travailler avec :)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Lire aussi les articles de news : <20> FAQ - les accents fran<61>ais et
|
|||
|
Usenet<65> de F. Yergeau dans les groupes fr.usenet.reponses et
|
|||
|
fr.usenet.8bits <20> ISO 8859-1 National Character Set FAQ<41> de mike (<28>)
|
|||
|
vlsivie.tuwien.ac.at dans comp.answers .
|
|||
|
|
|||
|
|
|||
|
6.27. ncurses
|
|||
|
|
|||
|
|
|||
|
Rappelons que ncurses est un librairie C qui permet de manipuler
|
|||
|
facilement l'affichage en mode console texte : fen<65>trage, lignes de
|
|||
|
saisie, <20>dition de formulaires, couleurs, caract<63>res <20> ALT <20> ascii
|
|||
|
semi-graphique ibm, comme sous dos...
|
|||
|
|
|||
|
|
|||
|
6.27.1. Introduction
|
|||
|
|
|||
|
|
|||
|
La version standard de curses utilise le huiti<74>me bit pour la vid<69>o
|
|||
|
invers<72>e (voir le flag _STANDOUT d<>fini dans /usr/include/curses.h).
|
|||
|
Cependant, ncurses semble fonctionner en 8-bits et affiche le iso-
|
|||
|
latin-8859-1 correctement.
|
|||
|
|
|||
|
|
|||
|
6.27.2. Les accents
|
|||
|
|
|||
|
|
|||
|
Remarque: les distributions de Linux sont livr<76>es en g<>n<EFBFBD>ral avec la
|
|||
|
version 1.9.9e de ncurses, or il se trouve que la librairie form de
|
|||
|
cette version est BUGG<47>E (probl<62>mes de rafra<72>chissement des fen<65>tres).
|
|||
|
|
|||
|
Ne pas utiliser la 1.9.9e donc si on veut travailler avec <20> form <20> :
|
|||
|
ce bug est d'ailleurs clairement <20>nonc<6E> sur le site de ncurses, et je
|
|||
|
m'<27>tonne que ce soit justement cette version qui soit encore livr<76>e
|
|||
|
sur la plupart des distributions (RedHat 4.2, 5.0, 5.1, Slackware 3.2,
|
|||
|
Debian 1.9) en tout cas.
|
|||
|
|
|||
|
|
|||
|
Sympt<70>me : la fonction wgetch() de ncurses renvoie les codes suivants
|
|||
|
:
|
|||
|
|
|||
|
|
|||
|
<20> je tape '<27>' et wgetch retourne <20> meta-i <20> code 233 (decimal)
|
|||
|
|
|||
|
<20> " " '<27>' " " " <20> meta-h <20> code 234 (decimal)
|
|||
|
|
|||
|
<20> etc
|
|||
|
|
|||
|
C'est normal avec les polices iso-8859-1 !
|
|||
|
|
|||
|
Il faut installer les <20> locales <20> ou mettre <20> jour sa version de
|
|||
|
ncurses.
|
|||
|
|
|||
|
|
|||
|
6.28. Perl
|
|||
|
|
|||
|
|
|||
|
Si tout d'un coup apr<70>s une mise <20> jour il raconte :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(guylhem@victis:guylhem)$ perl
|
|||
|
perl: warning: Setting locale failed for the categories:
|
|||
|
LC_CTYPE LC_COLLATE
|
|||
|
perl: warning: Please check that your locale settings:
|
|||
|
LC_ALL = "fr_FR",
|
|||
|
LC_CTYPE = "ISO-8859-1",
|
|||
|
LC_COLLATE = (unset),
|
|||
|
LANG = "fr"
|
|||
|
are supported and installed on your system.
|
|||
|
perl: warning: Falling back to the "C" locale.
|
|||
|
(guylhem@victis:guylhem)$
|
|||
|
|
|||
|
|
|||
|
|
|||
|
En libc6 le format des fichiers binaires de d<>finition des locales a
|
|||
|
(encore) chang<6E> : il faut les r<>g<EFBFBD>n<EFBFBD>rer <20> partir des sources sources
|
|||
|
WG15collection.tar.gz par exemple et des programmes <20> locale <20> et <20>
|
|||
|
localedef <20> qui sont fournis dans les sources de la libc.
|
|||
|
|
|||
|
Sinon on peut <20>galement se passer des locales :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
unset LANG
|
|||
|
unset LC_CTYPE
|
|||
|
unset LC_COLLATE
|
|||
|
export LC_ALL=fr_FR.ISO-8859-1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.29. Installer les locales
|
|||
|
|
|||
|
|
|||
|
Les <20> locales <20> sont des fichiers qui vont modifier le comportement de
|
|||
|
certains programmes pour qu'ils s'adaptent aux <20> sp<73>cificit<69>s
|
|||
|
culturelles du pays <20>.
|
|||
|
|
|||
|
Cela sert <20> r<>soudre les erreurs rapport<72>es par perl ou une mauvaise
|
|||
|
gestion des accents par ncurses.
|
|||
|
|
|||
|
<20> r<>cup<75>rer pour la libc5 la collection de locales POSIX
|
|||
|
|
|||
|
<20> ou pour la libc6, elle est dans l'ajout <20> glibc-localedata <20>
|
|||
|
|
|||
|
<20> copier dans le r<>pertoire /usr/share/locale les fichiers fr_FR et
|
|||
|
en_DK (qui est inclus dans fr_FR)
|
|||
|
|
|||
|
<20> cr<63>er le r<>pertoire /usr/share/i18n/charmap et copier le fichier
|
|||
|
ISO_8859-1:1987
|
|||
|
|
|||
|
<20> faire man localedef et lancer la commande :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
localedef -f ISO_8859-1:1987 -i fr_FR fr
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Ceci cr<63>era l'entr<74>e fr dans /usr/share/locale soit :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/usr/share/locale/fr
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Ce r<>pertoire devrait maintenant contenir les fichiers :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
LC_COLLATE
|
|||
|
LC_CTYPE
|
|||
|
LC_MESSAGES
|
|||
|
LC_MONETARY
|
|||
|
LC_NUMERIC
|
|||
|
LC_TIME
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> lire le fichier <20> locale.fr <20> que l'on peut trouver sur le serveur
|
|||
|
ftp.lip6.fr (chercher sous doc, linux...) et dont la traduction
|
|||
|
fran<61>aise a <20>t<EFBFBD> faite par <20>ric DUMAS (h<>las ce doc ne traite
|
|||
|
principalement que de LC_MESSAGES. <20> quand la suite <20>ric ? ;-) )
|
|||
|
|
|||
|
<20> compl<70>ter <20>ventuellement l'initialisation des variables du shell
|
|||
|
comme d<>crit dans la section sur bash ou tcsh
|
|||
|
|
|||
|
<20> dans un programme, utilisez la fonction setlocale() (man
|
|||
|
setlocale.3) pour fixer les param<61>tres locaux CAR le noyau linux
|
|||
|
initialise toujours cette fonction avec l'argument une locale <20> C <20>
|
|||
|
(POSIX) donc sans accents !
|
|||
|
|
|||
|
|
|||
|
|
|||
|
setlocale(LC_CTYPE,"fr_FR");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<20> <20>a y est ! Les accents sont disponibles dans ncurses.
|
|||
|
|
|||
|
|
|||
|
6.29.1. Midnight Commander (mc)
|
|||
|
|
|||
|
|
|||
|
En changeant de police, il peut arriver que les lignes de cadre soient
|
|||
|
remplac<61>es par divers caract<63>res.
|
|||
|
|
|||
|
2 possibilit<69>es :
|
|||
|
|
|||
|
<20> La police charg<72>e ne dispose pas de caract<63>res dits <20> semi
|
|||
|
graphiques <20>, qui permettent de dessiner des cadres
|
|||
|
|
|||
|
<20> Il y a discordance entre la police et sa table de mappage
|
|||
|
|
|||
|
Pour le premier cas, la seule solution est de changer de police, mais
|
|||
|
dans le second cas, il suffit en g<>n<EFBFBD>ral de charger la table avec
|
|||
|
loadunimap par exemple :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
loadunimap lat1u.uni
|
|||
|
loadunimap lat5u.uni
|
|||
|
loadunimap lat9u.uni
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.30. Kernel
|
|||
|
|
|||
|
|
|||
|
Pour mettre un support pour le clavier fran<61>ais directement dans le
|
|||
|
kernel, ce qui est pratique pour les syst<73>mes embarqu<71>s ou ne
|
|||
|
d<>marrant que sur disquettes, afin de gagner le maximum de place :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/usr/bin/loadkeys loadkeys --mktable votre-table-de-clavier.map > /usr/src/linux/drivers/char/defkeymap.c
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.31. Lilo
|
|||
|
|
|||
|
|
|||
|
Depuis la version 20, on peut sp<73>cifier un clavier (fran<61>ais, par
|
|||
|
exemple) au d<>marrage de LILO.
|
|||
|
|
|||
|
Bien sur, cela ne fait qu'<27>changer quelques touches (a/q,m/:,... pour
|
|||
|
un clavier fr) mais cela est assez utile lorsque l'on veut taper <20> win
|
|||
|
<20>.
|
|||
|
|
|||
|
Je vous conseille toutefois de ne pas faire de label utilisant des
|
|||
|
touches qui diff<66>rent entre l'AZERTY et le QWERTY, ne serait-ce que si
|
|||
|
vous devez avoir un jour un autre utilisateur sur votre ordinateur...
|
|||
|
|
|||
|
Il est plus simple de faire des labels courts et d'utiliser des
|
|||
|
programmes comme GAG ou GRUB, rempla<6C>ant fort avantageusement les
|
|||
|
lignes de lilo par un magnifique menu graphique dans le cas de GAG.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6.32. Groff (man)
|
|||
|
|
|||
|
|
|||
|
Sur certaines distributions, le programme man n'est pas configur<75> pour
|
|||
|
afficher les accents.
|
|||
|
|
|||
|
Si vous rencontrez ce probl<62>me, <20>ditez son fichier de configuration
|
|||
|
(/etc/man.config sur les distributions actuelles) et localisez une
|
|||
|
ligne ressemblant <20> cela :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NROFF /usr/bin/groff -Tascii -mandoc
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Remplacez-l<> par :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NROFF /usr/bin/groff -Tlatin1 -mandoc
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Les vieilles versions de man utilisent aussi col, et le point suivant
|
|||
|
s'applique aussi.
|
|||
|
|
|||
|
|
|||
|
6.33. Divers
|
|||
|
|
|||
|
|
|||
|
Une belle discussion sur le th<74>me de l'ISO-8859-1 et sur <20> comment
|
|||
|
manipuler les caract<63>res 8-bits <20> est disponible
|
|||
|
|
|||
|
|
|||
|
7. R<>glage du clavier pour les applications X
|
|||
|
|
|||
|
7.1. Les xterminaux (xterm, nxterm, rxvt...)
|
|||
|
|
|||
|
|
|||
|
Les faire fonctionner avec toutes les touches standard du clavier 102
|
|||
|
touches rel<65>ve du miracle, quant aux accents, seule une recompilation
|
|||
|
vous permettra de les utiliser !
|
|||
|
|
|||
|
Pour xterm, essayez de mettre dans votre .Xdefaults :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
XTerm*eightBitInput: true
|
|||
|
XTerm*eightBitOutput: true
|
|||
|
*customization: -color
|
|||
|
XTerm*VT100*Translations: #override\n\
|
|||
|
XTerm*pointerColor: red
|
|||
|
None<Key>Begin: string(0x1b) string("[1~")\n\
|
|||
|
None<Key>End: string(0x1b) string("[4~")\n\
|
|||
|
None<Key>Prior: scroll-back(1,halfpage)\n\
|
|||
|
None<Key>Next: scroll-forw(1,halfpage)\n\
|
|||
|
Shift<Key>Prior: scroll-back(1,page)\n\
|
|||
|
Shift<Key>Next: scroll-forw(1,page)
|
|||
|
XTerm*fontMenu*fontdefault*Label: Default
|
|||
|
XTerm*VT100*font: 9x15
|
|||
|
XTerm*fontMenu*font1*Label: Illisible
|
|||
|
XTerm*VT100*font1: nil2
|
|||
|
XTerm*fontMenu*font2*Label: Minuscule
|
|||
|
XTerm*VT100*font2: 5x7
|
|||
|
XTerm*fontMenu*font3*Label: Petit
|
|||
|
XTerm*VT100*font3: 6x10
|
|||
|
XTerm*fontMenu*font4*Label: Normal
|
|||
|
XTerm*VT100*font4: fixed
|
|||
|
XTerm*fontMenu*font5*Label: Moyen
|
|||
|
XTerm*VT100*font5: 7x13
|
|||
|
XTerm*fontMenu*font6*Label: Tres grand
|
|||
|
XTerm*VT100*font6: 10x20
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Dans .inputrc :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# pour rxvt
|
|||
|
"\e[7~":beginning-of-line
|
|||
|
"\e[8~":end-of-line
|
|||
|
# pour xterm
|
|||
|
"\e[H": beginning-of-line
|
|||
|
"\e[F": end-of-line
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Mais ces deux solutions ne vous garantissent pas de r<>soudre tous les
|
|||
|
probl<62>mes de rxvt et de xterm ...
|
|||
|
|
|||
|
Pour les r<>soudre sans cr<63>er de fichiers dans /usr/X11R6/lib/X11/app-
|
|||
|
defaults, je tiens sinon <20> votre disposition un xiterm, un terminal X
|
|||
|
supportant *TOUTES* les touches des claviers standard, avec Home, End,
|
|||
|
Page_Up (...) et m<>me le pav<61> num<75>rique, fonctionnant comme en mode
|
|||
|
console, i.e. Shift-Page_Up permettant de faire d<>filer une page,
|
|||
|
voire mieux : le pav<61> num<75>rique reconnaissant enfin la diff<66>rence
|
|||
|
entre Verr. Num allum<75> et Verr. Num <20>teint.
|
|||
|
|
|||
|
X international terminal (xiterm pour les intimes) est bien s<>r sous
|
|||
|
GPL et mis <20> jour pour suivre parall<6C>lement l'<27>volution de rxvt.
|
|||
|
|
|||
|
Sur par exemple mon site vous trouverez donc xiterm, qui remplace
|
|||
|
votre xterm classique en y apportant la couleurs, les accents et les
|
|||
|
touches <20>tendues.
|
|||
|
|
|||
|
Pour l'installer, compilez-le, devenez root et tapez :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
rm /usr/X11R6/bin/xterm
|
|||
|
rm /usr/X11R6/lib/X11/app-defaults/xterm
|
|||
|
rm /usr/X11R6/lib/X11/app-defaults/rxvt
|
|||
|
rm /usr/X11R6/lib/X11/app-defaults/Xterm
|
|||
|
rm /usr/X11R6/lib/X11/app-defaults/XTerm
|
|||
|
rm /usr/X11R6/lib/X11/app-defaults/Rxvt
|
|||
|
rm /usr/X11R6/lib/X11/app-defaults/RXvt
|
|||
|
cp xiterm /usr/local/bin
|
|||
|
|
|||
|
ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/xterm
|
|||
|
ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/rxvt
|
|||
|
|
|||
|
|
|||
|
|
|||
|
7.2. Les applications Motif
|
|||
|
|
|||
|
|
|||
|
L<>, je n'ai malheureusement aucun rem<65>de miracle !
|
|||
|
|
|||
|
Il faudrait modifier le code source, code indiqu<71> plus haut, pour
|
|||
|
remplacer XLookupString par XmLookupString.
|
|||
|
|
|||
|
Utilisez les possibilit<69>s du fichier french au lieu des touches mortes
|
|||
|
(AltGr (voyelle) : voyelle accent circonflexe... ) !
|
|||
|
|
|||
|
|
|||
|
7.3. Le manuel
|
|||
|
|
|||
|
|
|||
|
Pablo Saratxaga tient <20> votre disposition un xman modifi<66> pour qu'il
|
|||
|
supporte la variable <20> LANG <20> et puisse afficher les pages en d'autres
|
|||
|
langues qu'anglais.
|
|||
|
|
|||
|
Il est disponible sur le lip6 en sources ou en binaires
|
|||
|
|
|||
|
|
|||
|
7.4. NumLock
|
|||
|
|
|||
|
|
|||
|
Pour l'activer sous X, mettre en commentaire ServerNumLock dans la
|
|||
|
section keyboard de XF86Config, puis rajouter au dessous Xleds 2, ce
|
|||
|
qui allumera la led.
|
|||
|
|
|||
|
Attention, ce conseil ne s'applique que lorsque l'on n'utilise pas
|
|||
|
xkb, i.e. qu'on met XkbDisable dans XF86Config...
|
|||
|
|
|||
|
|
|||
|
7.5. XDM
|
|||
|
|
|||
|
|
|||
|
/etc/X11/xdm/Xresources sert <20> ne rencontrer aucun probl<62>me avec les
|
|||
|
touches <20> sp<73>ciales <20> (Home, End ...) sous X.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
xlogin*login.translations: #override\
|
|||
|
Ctrl<Key>R: abort-display() \n\
|
|||
|
<Key>BackSpace: delete-previous-character() \n\
|
|||
|
<Key>Home: move-to-begining() \n\
|
|||
|
<Key>Delete: delete-character() \n\
|
|||
|
<Key>End: move-to-end() \n\
|
|||
|
<Key>Left: move-backward-character() \n\
|
|||
|
<Key>Return: set-session-argument() finish-field() \n\
|
|||
|
<Key>Right: move-forward-character()
|
|||
|
|
|||
|
|
|||
|
|
|||
|
8. Remerciements
|
|||
|
|
|||
|
|
|||
|
Ce document ne serait pas ce qu'il est sans l'aide de Nat Makar<61>vitch
|
|||
|
(nat <20> nataa.fr.eu.org) qui l'a relu et m'a aid<69> <20> le modifier de
|
|||
|
nombreuses fois.
|
|||
|
|
|||
|
Un excellent document plus g<>n<EFBFBD>rique, traitant de l'installation par
|
|||
|
ex, est le Guide du Rootard, disponible sur freenix ou le lip6
|
|||
|
|
|||
|
Remercions enfin par ordre alphab<61>tique ces contributeurs :
|
|||
|
|
|||
|
Jean-Michel Antoine
|
|||
|
Michel Billaud
|
|||
|
Chmouel Boudjnah
|
|||
|
Stephane Bortzmeyer
|
|||
|
Denis Braussen
|
|||
|
R<>my Card
|
|||
|
Julien Cassaigne
|
|||
|
Xavier Cazin
|
|||
|
Laurent Chemla
|
|||
|
Ren<65> Cougnenc
|
|||
|
Bruno Cornec
|
|||
|
Yann Dirson
|
|||
|
<20>ric Dubreuil
|
|||
|
<20>ric Dumas
|
|||
|
Arnaud Gomes-do-Vale
|
|||
|
Pierre Ficheux
|
|||
|
Laurent Frigault
|
|||
|
Hugolino
|
|||
|
Antoine Leca
|
|||
|
Frederic Lepied
|
|||
|
Jeannot Langlois
|
|||
|
Stephane Marzloff
|
|||
|
Marc Merlin
|
|||
|
Thomas Parmelan
|
|||
|
Fr<46>d<EFBFBD>ric Petit
|
|||
|
Thomas Quinot
|
|||
|
David Robert
|
|||
|
Olivier Robert
|
|||
|
Benjamin Ryzman
|
|||
|
Pablo Saratxaga
|
|||
|
Julien Simon
|
|||
|
Lo<4C>c Tortay
|
|||
|
J.M. Vansteene
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Surtout, si je vous oublie, signalez-le moi ! De m<>me si vous ne
|
|||
|
voulez plus figurer dans cette liste...
|
|||
|
|
|||
|
|
|||
|
Envoyez moi vos suggestions et modifications (guylhem <20>
|
|||
|
metalab.unc.edu), je me ferai un plaisir de les int<6E>grer dans les
|
|||
|
prochaines versions !
|
|||
|
|
|||
|
Signalez-moi aussi les erreurs : cet HOWTO est en perp<72>tuel
|
|||
|
changement, avec des nouveaut<75>s incluses <20> chaque version ; des
|
|||
|
erreurs peuvent facilement s'y glisser !
|
|||
|
|
|||
|
|
|||
|
|