mirror of https://github.com/tLDP/LDP
3239 lines
106 KiB
Plaintext
3239 lines
106 KiB
Plaintext
|
<!doctype Linuxdoc system>
|
|||
|
|
|||
|
<article>
|
|||
|
|
|||
|
<title>Le Francophones-HOWTO : Linux & la langue française
|
|||
|
<author>Écrit par Guylhem Aznar, <<tt/guylhem(à)oeil.qc.ca/>
|
|||
|
<date>v3.2 ; D<>cembre 1999
|
|||
|
|
|||
|
<abstract>
|
|||
|
Copyright © 1997, 1998, 1999, Guylhem Aznar ; librement
|
|||
|
distribuable selon les termes du LDP.
|
|||
|
|
|||
|
Toutes les marques cit<69>es appartiennent <20> leurs propri<72>taires
|
|||
|
respectifs.
|
|||
|
</abstract>
|
|||
|
|
|||
|
<toc>
|
|||
|
|
|||
|
<sect>Pr<50>sentation<p>
|
|||
|
|
|||
|
<sect1>Introduction<p>
|
|||
|
|
|||
|
Ce document a <20>t<EFBFBD> r<>dig<69> pour aider <20> configurer un ordinateur dot<6F> du
|
|||
|
syst<EFBFBD>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<EFBFBD>cificit<EFBFBD>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<EFBFBD>tiez maintenant <20> mieux la configurer ; veuillez donc vous
|
|||
|
r<EFBFBD>f<EFBFBD>rer <20> d'autres HOWTOs pour l'installation.
|
|||
|
|
|||
|
Les adresses <20>lectroniques ont <20>t<EFBFBD> volontairement supprim<69>es ou
|
|||
|
modifi<EFBFBD>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<EFBFBD>s tout au long de ce document.
|
|||
|
|
|||
|
<sect1>Fichiers utilis<69>s dans ce HOWTO<p>
|
|||
|
|
|||
|
Tous les fichiers cit<69>s dans ce HOWTO, sont disponibles sous licence GPL
|
|||
|
sur <htmlurl name="ma page" url="http://metalab.unc.edu/guylhem/">
|
|||
|
|
|||
|
Je vous recommande de t<>l<EFBFBD>charger tous ces fichiers pour les utiliser
|
|||
|
selon les exemples propos<6F>s.
|
|||
|
|
|||
|
<sect1>Les Fran<61>ais ne sont pas les seuls francophones !<p>
|
|||
|
|
|||
|
<sect2>a) Diff<66>rentes versions<p>
|
|||
|
|
|||
|
Pour chaque manipulation d<>pendant du pays concern<72>, un certain nombre
|
|||
|
de versions peuvent <20>tre propos<6F>es :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>une canadienne normalis<69>e (cn)
|
|||
|
<item>une belge wallonne (be)
|
|||
|
<item>une fran<61>aise (fr)
|
|||
|
<item>une qu<71>b<EFBFBD>coise (qc)
|
|||
|
<item>une suisse romande (sf)
|
|||
|
<item>une <20>tats-unienne internationale (usx)
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect2>b) Les <20>tats-uniens : raccourcis claviers<p>
|
|||
|
|
|||
|
La version <20>tats-unienne internationale permet <20> tous
|
|||
|
les francophones utilisant un clavier <20> 7 bits <20> aussi nomm<6D>
|
|||
|
<EFBFBD> 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>.
|
|||
|
|
|||
|
<sect2>c) Le Luxembourg : comme la France<p>
|
|||
|
|
|||
|
Le Grand Duch<63> du Luxembourg utilisant les conventions fran<61>aises,
|
|||
|
j'invite les lecteurs luxembourgeois <20> se reporter aux exemples
|
|||
|
fran<EFBFBD>ais.
|
|||
|
|
|||
|
<sect2>d) Le Canada : 3 claviers<p>
|
|||
|
|
|||
|
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<EFBFBD>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
|
|||
|
<EFBFBD>, 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<EFBFBD>ais devient ainsi trois barres obliques fines orient<6E>es
|
|||
|
sud-ouest/nord-est.
|
|||
|
|
|||
|
Plus d'explications sont disponibles sur le <htmlurl
|
|||
|
name="site de l'Office de la Langue Fran<61>aise" url="
|
|||
|
http://www.olf.gouv.qc.ca/technologies/technopages/claviernorm.html">.
|
|||
|
|
|||
|
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
|
|||
|
(<htmlurl name="illustrations"
|
|||
|
url="http://www.olf.gouv.qc.ca/images/clavier.gif">) et les normes
|
|||
|
th<EFBFBD>oriques, et non les normes pratiques.
|
|||
|
|
|||
|
Par exemple, si j'ai compris que la touche <20> Control <20> de droite est
|
|||
|
utilis<EFBFBD>e comme une <20> AltGr <20> mais sert <20> obtenir encore d'autres
|
|||
|
caract<EFBFBD>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 :-)
|
|||
|
|
|||
|
<sect1>Attention<p>
|
|||
|
|
|||
|
<sect2>a) ROOT<p>
|
|||
|
|
|||
|
Certaines manipulations recommand<6E>es par ce document ne peuvent
|
|||
|
<EFBFBD>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<EFBFBD>ril le contenu des disques.
|
|||
|
|
|||
|
Sauvegarder les fichiers existants, par exemple en les copiant sous le
|
|||
|
m<EFBFBD>me nom suivi du pr<70>fixe .old, avant de les modifier ou remplacer.
|
|||
|
|
|||
|
<sect2>b) CHERCHER<p>
|
|||
|
|
|||
|
Le paquetage GNU nomm<6D> <sq>find</sq> offre un programme appel<65>
|
|||
|
<tt/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 <tt>updatedb</tt> invoque un
|
|||
|
<tt>find /</tt> 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.)
|
|||
|
|
|||
|
<tt/locate/ permet ensuite de localiser l'un d'eux :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(guylhem@victis:guylhem)$ locate noms_des_fichiers_<73>_retrouver
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect>Les probl<62>mes<p>
|
|||
|
|
|||
|
<sect1>Pr<50>sentation<p>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> la police de caract<63>res donc les caract<63>res sp<73>ciaux que l'on utilise,
|
|||
|
accentu<EFBFBD>s comme É È À Ç ou bien ligatur<75>s
|
|||
|
comme Æ , 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
|
|||
|
<item> 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
|
|||
|
<item> le format de page pris en charge par les programmes que vous utilisez
|
|||
|
pour imprimer, diff<66>rent entre les États-Unis; (14<31>8,5 pouces
|
|||
|
pour du papier dit l<>gal) et l'Europe (29,7<>21 cm pour des feuilles a4)
|
|||
|
<item> 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
|
|||
|
<item> le format de la monnaie, aussi variable selon les francophones
|
|||
|
<item> la langue utilis<69>e pour les messages d'erreur
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect1>Solutions<p>
|
|||
|
|
|||
|
Tout est pr<70>configur<75> pour un <20>tats-unien : bien que ceux-ci ne
|
|||
|
repr<EFBFBD>sentent pas la majorit<69> de la population mondiale, ils ont <20>t<EFBFBD>
|
|||
|
pr<EFBFBD>curseurs en informatique.
|
|||
|
|
|||
|
Il faut donc se faire reconna<6E>tre comme une <20> exception <20> par les
|
|||
|
diff<EFBFBD>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
|
|||
|
<EFBFBD> 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.
|
|||
|
|
|||
|
<sect1>Aider<p>
|
|||
|
|
|||
|
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> Éric Dumas
|
|||
|
<dumas(<28>)freenix.fr> ou <dumas(<28>)linux.eu.org>.
|
|||
|
|
|||
|
<sect>Le vocabulaire : petit lexique<p>
|
|||
|
|
|||
|
Tout d'abord, un mot sur le vocabulaire employ<6F> :
|
|||
|
|
|||
|
<sect1>8 bits<p>
|
|||
|
|
|||
|
Des caract<63>res sont dits <20> 8 bits <20> s'ils correspondent <20> des accents ou
|
|||
|
<EFBFBD> des signes sp<73>ciaux comme <20> <20> <20>, non inclus dans le standard
|
|||
|
<tt/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
|
|||
|
<EFBFBD> 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<EFBFBD>re <20>quivalent not<6F> <20> eb <20> en hexad<61>cimal correspond <20> <20> <20> <20>.
|
|||
|
|
|||
|
<sect1>La police de caract<63>res<p>
|
|||
|
|
|||
|
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<EFBFBD>res d'un standard.
|
|||
|
|
|||
|
<sect1>Les polices de caract<63>res<p>
|
|||
|
|
|||
|
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
|
|||
|
<htmlurl name="explication fort d<>taill<6C>e"
|
|||
|
url="http://czyborra.com/charsets/iso8859.html">
|
|||
|
|
|||
|
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).
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> 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.
|
|||
|
|
|||
|
<item> 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.
|
|||
|
|
|||
|
<item> 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.
|
|||
|
|
|||
|
<item> ISO 8859-4 : latin 4 : langues baltes (incomplet).
|
|||
|
|
|||
|
Pas utilis<69> dans la pratique, remplac<61> par Latin 7 (iso-8859-13), ou
|
|||
|
plut<EFBFBD>t en pratique la codepage 1257 Windows.
|
|||
|
|
|||
|
Pour l'Este ou Estonien, on peut aussi utiliser Latin 9.
|
|||
|
|
|||
|
<item> 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<EFBFBD>.
|
|||
|
|
|||
|
Codage officiel aux Pays-Bas du fait des Turcs qui y habitent.
|
|||
|
|
|||
|
<item> 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>.
|
|||
|
|
|||
|
<item> ISO 8859-11 : Thai.
|
|||
|
|
|||
|
Pas encore officiellement adopt<70>.
|
|||
|
|
|||
|
<item> ISO 8859-12 : Indien (n'existe pas encore).
|
|||
|
|
|||
|
Pr<EFBFBD>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.
|
|||
|
|
|||
|
<item> 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.
|
|||
|
|
|||
|
<item> 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.
|
|||
|
|
|||
|
<item> 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).
|
|||
|
</itemize>
|
|||
|
|
|||
|
De cette longue liste, il convient de ne retenir que :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>ISO 8859-1 latin 1 : police ouest-europ<6F>enne utilis<69>e par la
|
|||
|
majorit<EFBFBD> des syst<73>mes UNIX, elle permet de disposer de tous les
|
|||
|
caract<EFBFBD>res Fran<61>ais sauf les <20> o e li<6C>s <20>, l'euro et l'y tr<74>ma majuscule
|
|||
|
<item>cp850 : <20>quivalent sous DOS de cette police, mais incompatible :
|
|||
|
il faut utiliser un outil de traduction de fichiers tel GNU recode.
|
|||
|
<item>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<EFBFBD>res des pays europ<6F>ens ; ainsi on y retrouve les caract<63>res
|
|||
|
Fran<EFBFBD>ais manquant, l'euro, et des caract<63>res finlandais manquants.
|
|||
|
<item>latin 0 : l'ISO 8859-15 latin 9 est souvent incorrectement
|
|||
|
abr<EFBFBD>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
|
|||
|
<htmlurl name="site de l'ISO"
|
|||
|
url="http://www.iso.ch/catf/d29505.html"> et <20> la
|
|||
|
<htmlurl name="documentation compl<70>te de ce standard"
|
|||
|
url="http://www.indigo.ie/egt/standards/iso8859/8859-15-fr.pdf">
|
|||
|
<item>cp1252 : <20>quivalent sous Windows de cette police, aussi
|
|||
|
incompatible, qui apporte les m<>mes caract<63>res manquants, du fait d'une
|
|||
|
r<EFBFBD>vision r<>cente de cette norme.
|
|||
|
<item>ISO 8859-9 latin 5 : police officielle en Turquie et en Hollande,
|
|||
|
o<EFBFBD> les caract<63>res Islandais peu utilis<69>s ont <20>t<EFBFBD> remplac<61>s par les
|
|||
|
caract<EFBFBD>res turcs.
|
|||
|
<item>cp1254 : <20>quivalent sous Windows de cette police, aussi
|
|||
|
incompatible, qui apporte les caract<63>res manquant au Fran<61>ais
|
|||
|
pr<EFBFBD>c<EFBFBD>demment cit<69>s et remplace les caract<63>res Islandais peu utilis<69>s par
|
|||
|
les caract<63>res turcs.
|
|||
|
</itemize>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>Il supporte l'int<6E>gralit<69> des caract<63>res utilis<69>s en Fran<61>ais de
|
|||
|
mani<EFBFBD>re standard sur les UNIX, pour les <20>changes de fichiers entre
|
|||
|
Solaris et Linux par exemple
|
|||
|
<item>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
|
|||
|
<item>Il permet d'<27>crire des textes avec l'int<6E>gralit<69> des
|
|||
|
caract<EFBFBD>res utilis<69>s dans l'union
|
|||
|
<item>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
|
|||
|
</itemize>
|
|||
|
|
|||
|
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<EFBFBD>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>
|
|||
|
|
|||
|
<sect1>Table de clavier<p>
|
|||
|
|
|||
|
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<EFBFBD>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
|
|||
|
<EFBFBD>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.
|
|||
|
|
|||
|
<sect1><3E> Home <20>, <20> End <20>, <20> Page_Up <20> et <20> Page_Down <20><p>
|
|||
|
|
|||
|
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<EFBFBD>sent<EFBFBD>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<EFBFBD> par la table de clavier.
|
|||
|
|
|||
|
La table de clavier, si elle reconnait le code, renvoie la chaine
|
|||
|
associ<EFBFBD>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:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<sect1>Touches mortes<p>
|
|||
|
|
|||
|
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
|
|||
|
<EFBFBD>tre interpr<70>t<EFBFBD>e, par exemple, le tr<74>ma ou l'accent circonflexe sont en
|
|||
|
g<EFBFBD>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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
<09> ^ <20> puis <20> e <20> donne <20> <20> <20>
|
|||
|
<09> ^ <20> puis <20> espace <20> donne <20> ^ <20>
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Les touches mortes sont :
|
|||
|
<itemize>
|
|||
|
<item> 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<EFBFBD>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
|
|||
|
<item> sf et usx: les accent aigus, graves, circonflexes, les
|
|||
|
tr<EFBFBD>mas et la tilde
|
|||
|
<item> qc: les accent graves, circonflexes, les tr<74>mas et la c<>dille
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect1><3E> BackSpace <20> et <20> Delete <20><p>
|
|||
|
|
|||
|
En raison d'une erreur volontaire et historique sous Linux, pour
|
|||
|
<EFBFBD> <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<EFBFBD>ons donc par bien les d<>finir :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>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.
|
|||
|
<item>Delete : touche du pav<61> curseur au cabochon marqu<71> <20> Suppr <20> ou
|
|||
|
<EFBFBD> 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.
|
|||
|
</itemize>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>BS : caract<63>re ASCII 0x08, ou control-h.
|
|||
|
<item>DEL : caract<63>re ASCII 0x7F, ou control-?
|
|||
|
<item>^D : caract<63>re ASCII 0x04, ou control-d.
|
|||
|
</itemize>
|
|||
|
|
|||
|
Ceci dans le but d'effacer <20> gauche du curseur avec BackSpace, <20> droite du
|
|||
|
curseur avec Delete.
|
|||
|
|
|||
|
<sect1><3E> UTC <20> et <20> GMT <20><p>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>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.
|
|||
|
|
|||
|
<item>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<EFBFBD> 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.
|
|||
|
<htmlurl name="Le site de l'opdaf" url="http://opdaf1.obspm.fr/"> et
|
|||
|
<htmlurl name="le lexique"
|
|||
|
url="http://opdaf1.obspm.fr/www/lexique.html"> donnent plus de
|
|||
|
renseignements. </itemize>
|
|||
|
|
|||
|
C'est le temps UTC, d<>fini <20> Paris, qui sert de r<>f<EFBFBD>rence aux
|
|||
|
diff<EFBFBD>rentes heures l<>gales.
|
|||
|
|
|||
|
L'acronyme <20> GMT <20> est employ<6F> 99% du temps pour
|
|||
|
d<EFBFBD>signer UTC, mais c'est une erreur ou un abus de langage.
|
|||
|
|
|||
|
Enfin, <20> titre purement indicatif, il existe l'heure astronomique, aussi
|
|||
|
compt<EFBFBD>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.
|
|||
|
|
|||
|
<sect>R<>glage du clavier sous Linux<p>
|
|||
|
|
|||
|
<sect1>Introduction<p>
|
|||
|
|
|||
|
Il existe deux programmes pour configurer votre clavier : un pour la console :
|
|||
|
<tt/loadkeys/ et un pour XFree : <tt/xkbd/.
|
|||
|
|
|||
|
Pour installer un clavier fran<61>ais sous Linux, tapez selon votre clavier
|
|||
|
une des lignes suivantes :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Attention au stty !<p>
|
|||
|
|
|||
|
Avec les tables latin 9 recommand<6E>es dans ce HOWTO, pour linux-console
|
|||
|
aussi bien que pour X window, <tt/N'UTILISEZ PLUS/ :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
stty erase ^H
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
ou :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
stty erase ^?
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<EFBFBD> stty erase <20> ne sert en effet qu'<27> <20>tablir une correspondance
|
|||
|
entre le code que renvoie une touche et la fonction <tt/erase/ pour
|
|||
|
effacer le caract<63>re.
|
|||
|
|
|||
|
Les tables ici fournies fonctionnent correctement et ne n<>cessitent donc
|
|||
|
pas de <tt/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 .
|
|||
|
|
|||
|
<sect1>Faire de ces modifications les d<>fauts au d<>marrage<p>
|
|||
|
|
|||
|
D'habitude, loadkeys est ex<65>cut<75> par des scripts au
|
|||
|
d<EFBFBD>marrage ; par exemple dans <tt>/etc/rc.d/init.d/keytable</tt> ou
|
|||
|
<tt>/etc/rc.d/rc.local</tt>, <tt>init.d/keytable</tt> ou <tt>rc.keymap</tt>.
|
|||
|
|
|||
|
La commande :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
find /etc/rc.d -type f | xargs grep loadkeys
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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<EFBFBD>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
|
|||
|
<tt>/etc/sysconfig/keyboard</tt> pour la RedHat et
|
|||
|
<tt>/etc/kbd/config</tt> 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<EFBFBD>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 <htmlurl name="l'archive"
|
|||
|
url="http://metalab.unc.edu/guylhem/francophones-howto.tgz">,
|
|||
|
enregistrez-la dans votre r<>pertoire ~/, puis d<>tarrez-la avec la
|
|||
|
commande:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
tar -xzvf francophones-howto.tgz
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Cela cr<63>e un r<>pertoire ~/french : placez-vous dans ce r<>pertoire
|
|||
|
puis tapez :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cp tables-clavier/linux-console/fr-latin9.map /usr/lib/kbd/keytables/i386/azerty/
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour afficher les caract<63>res latin9, vous devrez ex<65>cuter les
|
|||
|
instructions de la section <20> polices de caract<63>re <20>.
|
|||
|
|
|||
|
<sect1>Polices de caract<63>re<p>
|
|||
|
|
|||
|
Si vous utilisez console-tools-1998.08.11.tar.gz, vous pourrez remplacer
|
|||
|
<EFBFBD> setfont <20> par <20> consolechars <20> : ces programmes servent <20> charger une
|
|||
|
police sous linux console.
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
setfont /usr/lib/kbd/consolefonts/xxxE-NN.psf.gz
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Je vous conseille pour des raisons d<>velopp<70>es plus bas :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
setfont /usr/lib/kbd/consolefonts/lat9-16u.psf.gz
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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<EFBFBD>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<EFBFBD>pertoire /usr/lib/kbd/consoletrans avec la commande:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cp lat9*.uni /usr/lib/kbd/consoletrans
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
D'habitude, setfont est ex<65>cut<75> par des scripts au d<>marrage ; par
|
|||
|
exemple dans <tt>/etc/rc.d/init.d/keytable</tt> ou
|
|||
|
<tt>/etc/rc.d/rc.local</tt>, <tt>init.d/keytable</tt> ou
|
|||
|
<tt>rc.keymap</tt>.
|
|||
|
|
|||
|
La commande :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
find /etc/rc.d -type f | xargs grep setfont
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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<EFBFBD>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 <tt>/etc/sysconfig/i18n</tt>
|
|||
|
pour la RedHat et <tt>/etc/kbd/config</tt> pour les Debian.
|
|||
|
|
|||
|
Dans <tt>/etc/sysconfig/i18n</tt> rajouter une ligne de la forme :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
SYSFONT=xxxE-NN.psf
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> 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<EFBFBD>s, symboles de ponctuation comme paragraphe...
|
|||
|
<item> E repr<70>sente l'encodage latin, par exemple 1 pour latin1, 0 ou 9
|
|||
|
pour latin9
|
|||
|
<item> NNN repr<70>sente la taille individuelle de chaque caract<63>re ; 08
|
|||
|
est presque illisible mais 16 est un peu gros... À r<>gler selon
|
|||
|
les goûts de chacun.
|
|||
|
</itemize>
|
|||
|
|
|||
|
Je vous conseille la police lat9-16u.psf ou son <20>quivalent lat0-16.psf
|
|||
|
install<EFBFBD>e par d<>faut sur la plupart des distributions, tr<74>s souvent
|
|||
|
compress<EFBFBD>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.
|
|||
|
|
|||
|
<sect1>Vieilles versions<p>
|
|||
|
|
|||
|
Si lors du chargement de la table de clavier vous rencontrez un message
|
|||
|
d'erreur similaire au suivant :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Cela signifie que votre version de kbd dont le programme loadkeys
|
|||
|
d<EFBFBD>pend est trop vieille : il faut vous procurer une version plus
|
|||
|
r<EFBFBD>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<EFBFBD>su<EFBFBD>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 :
|
|||
|
|
|||
|
<sect1>Am<41>liorations sp<73>cifiques au clavier fran<61>ais latin9<p>
|
|||
|
|
|||
|
<EFBFBD>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 :
|
|||
|
|
|||
|
<sect2>a) carr<72>/cube<p>
|
|||
|
Elle sert maintenant <20> oe/OE li<6C>s ; en AltGr on y trouve les guillemets
|
|||
|
fran<EFBFBD>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<EFBFBD>aise.
|
|||
|
|
|||
|
En r<>sum<75> :
|
|||
|
<itemize>
|
|||
|
<item> AltGr (oe) : <20>
|
|||
|
<item> AltGr + Shift (oe) : <20>
|
|||
|
<item> AltGr (w) : <20>
|
|||
|
<item> AltGr (x) : <20>
|
|||
|
<item> AltGr (m) : <20>
|
|||
|
<item> AltGr (<28>) : <20>
|
|||
|
<item> AltGr (*) : <20>
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect2>b) dollar / livre / symbole mon<6F>taire international<p>
|
|||
|
|
|||
|
<EFBFBD>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<EFBFBD>simale de l'euro : le cent, disponible donc en AltGr ($).
|
|||
|
|
|||
|
Dans les pr<70>c<EFBFBD>dentes versions, le dollar & la livre, des monnaies
|
|||
|
<EFBFBD>trang<EFBFBD>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<EFBFBD>sol<EFBFBD> d'avoir rompu la <20> tradition <20> linuxienne pour conserver la
|
|||
|
compatibilit<EFBFBD> <20> la norme AZERTY & aux recommandations officielles de
|
|||
|
l'EURO WORKSHOP !
|
|||
|
|
|||
|
En r<>sum<75> :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> AltGr (e) : euro
|
|||
|
<item> AltGr ($) : cent
|
|||
|
<item> AltGr + Shift ($) : <20>
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect1>Pour les autres claviers latin9<p>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<sect1>Dans tous les cas<p>
|
|||
|
|
|||
|
<EFBFBD> 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<EFBFBD>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:
|
|||
|
<itemize>
|
|||
|
<item> COMPOSE ^ suivi d'une des lettres (s,S,z,Z) sert <20> obtenir les lettres finlandaises rajout<75>es
|
|||
|
<item> COMPOSE " suivi d'une des lettres (y,Y) sert <20> obtenir les y tr<74>mas franco-n<>erlandais rajout<75>s
|
|||
|
<item> COMPOSE - suivi d'une des lettres (e,c,l,y) sert <20> obtenir l'euro, le cent, la livre, le yen
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect>XFree<p>
|
|||
|
|
|||
|
<sect1>Introduction<p>
|
|||
|
|
|||
|
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
|
|||
|
<tt/.xinitrc/ ou <tt>/etc/X11/xinit/xinitrc</tt>
|
|||
|
|
|||
|
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<EFBFBD>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 !
|
|||
|
|
|||
|
<sect1>Mal programmer<p>
|
|||
|
|
|||
|
<EFBFBD> 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().
|
|||
|
|
|||
|
<sect1>Le clavier en pratique<p>
|
|||
|
|
|||
|
Quelle histoire compliqu<71>e !
|
|||
|
|
|||
|
De ce fait, elles ne fonctionnent que pour les clients X
|
|||
|
<EFBFBD> internationalis<69>s <20>, c'est-<2D>-dire qui g<>rent eux-m<>mes les probl<62>mes
|
|||
|
li<EFBFBD>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> !
|
|||
|
|
|||
|
<sect2>a) Solution utilisant xmodmap<p>
|
|||
|
|
|||
|
Taper :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cp fr-latin9.xmod /usr/X11R6/lib/X11/xinit/Xmodmap
|
|||
|
cp fr-latin9.xmod ~/.Xmodmap
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect2>b) Solution utilisant xkb (recommand<6E>e)<p>
|
|||
|
|
|||
|
Taper :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cp fr-latin9 /usr/X11R6/lib/X11/xkb/symbols
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Puis <20>diter votre <tt/XF86Config/ pour y rajouter dans la section <20> Keyboard
|
|||
|
<EFBFBD> les lignes xkb idoines :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour cette partie Xkb, certains pr<70>f<EFBFBD>rent :
|
|||
|
<tscreen><verb>
|
|||
|
XkbKeymap "xfree86(fr-latin9)"
|
|||
|
XkbKeycodes "xfree86"
|
|||
|
XkbSymbols "en_US(pc101)+fr-latin9"
|
|||
|
XkbGeometry "pc(pc101)"
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Bien sur, remplacer <20> fr <20> par <20> cn <20>, <20> be <20>, <20> ch <20> ou <20> usx <20> selon
|
|||
|
votre clavier...
|
|||
|
|
|||
|
<sect2>c) Solution du compose<p>
|
|||
|
|
|||
|
Une autre m<>thode pour obtenir des caract<63>res 8 bits :
|
|||
|
|
|||
|
Dans <tt>/usr/X11R6/lib/X11/locale/iso8859-1/Compose</tt> 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;
|
|||
|
<tscreen><verb>
|
|||
|
COMPOSE suivi de <20> e <20> puis <20> ^ <20>
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
ScrollLock Compose
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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
|
|||
|
<EFBFBD> Print Screen <20> qui, ne servant <20> rien, est affect<63>e <20> <20> Compose <20>.
|
|||
|
|
|||
|
<sect2>d) Solution modifiant la libX11<p>
|
|||
|
|
|||
|
Thomas Quinot <Thomas.Quinot(<28>)cuivre.fdn.fr> vous propose donc sa
|
|||
|
<tt>libX11</tt> modifi<66>e, qui g<>re les touches mortes de
|
|||
|
mani<EFBFBD>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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
~ + / = ~/
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour l'utiliser :
|
|||
|
<itemize>
|
|||
|
<item>R<>cup<75>rez libX11-XF3.3.1.tar.gz ;
|
|||
|
<item>Extrayez le fichier <tt>libX11.so.6.1</tt> ;
|
|||
|
<item>Placez-le dans <tt>/usr/X11R6/lib/</tt> ;
|
|||
|
<item>Ex<45>cutez <tt>ldconfig</tt> ;
|
|||
|
<item>D<>sactivez l'extension XKB en utilisant l'option
|
|||
|
<tt>XkbDisable</tt> dans la section <tt>Keyboard</tt> de votre
|
|||
|
<tt>XF86Config</tt>.
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect2>e) Est-ce n<>cessaire ?<p>
|
|||
|
|
|||
|
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
|
|||
|
<tt>/usr/X11R6/lib/X11/xkb/symbols/</tt> 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<EFBFBD>t d'<27>viter cette option, aussi bien que l'ancien gestionnaire de
|
|||
|
clavier <tt/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.
|
|||
|
|
|||
|
<sect1><3E> latin9 <20> ou <20> latin1 <20> ?<p>
|
|||
|
|
|||
|
Je vous conseille de choisir les tables <tt/latin9/ que je maintiens <20>
|
|||
|
jour, plus r<>centes que les versions <tt/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<EFBFBD>res !
|
|||
|
|
|||
|
<EFBFBD> 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<EFBFBD>ma !
|
|||
|
|
|||
|
<sect1>Table de correspondances<p>
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> AltGr (voyelle) : voyelle accent grave
|
|||
|
<item> AltGr + Shift (voyelle) : voyelle tr<74>ma
|
|||
|
<item> AltGr (touche au dessous de la voyelle) : voyelle majuscule accent grave
|
|||
|
<item> AltGr + Shift (touche au dessous de la voyelle) : voyelle majuscule
|
|||
|
tr<EFBFBD>ma
|
|||
|
<item> AltGr + Shift (minuscule accentu<74>e) : majuscule accentu<74>e
|
|||
|
</itemize>
|
|||
|
|
|||
|
Par exemple :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> AltGr (a) : <20>
|
|||
|
<item> AltGr (q) : <20>
|
|||
|
<item> AltGr + Shift (<28>) : <20>
|
|||
|
</itemize>
|
|||
|
|
|||
|
L'astuce marche aussi pour le c c<>dille :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> AltGr + Shift (<28>) : <20>
|
|||
|
</itemize>
|
|||
|
|
|||
|
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<EFBFBD>s en physique (ß, å, delta, phi ...), des signes
|
|||
|
de monnaies (yen, cent) ou de copyright (<tt/tm/, ©) ainsi que des
|
|||
|
lettres d'autres langues (Ø, Æ ...).
|
|||
|
|
|||
|
Tous ces signes s'obtiennent gr<67>ce <20> AltGr (lettre), par exemple
|
|||
|
AltGr (b) donne ß, AltGr (r) donne <tt/tm/, AltGr (y) donne yen...
|
|||
|
|
|||
|
Pour vous rapeller simplement de tout cel<65>, tapez par exemple :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
more /usr/lib/kbd/keytables/i386/azerty/fr-latin9.map
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<sect1>Les polices ISO 8859-15 latin 9 sous X<p>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Cel<EFBFBD> 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
|
|||
|
<EFBFBD>tre mis dans le r<>pertoire ad<61>quat, pour lequel l'index des polices de
|
|||
|
caract<EFBFBD>res sera mis <20> jour.
|
|||
|
|
|||
|
Alors, ajoutez la table de composition latin9 aux compositions par
|
|||
|
d<EFBFBD>faut de X, sp<73>cifiques <20> l'iso 8859-1 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cat XCompose-lat9 >> /usr/X11R6/lib/X11/locale/iso8859-1/Compose
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
xset +fp /usr/X11R6/lib/X11/fonts/misc
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Si vous utilisez xmodmap, lancez :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
xmodmap ~/.Xmodmap
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour choisir les polices latin9, lancer xfontsel et chercher les
|
|||
|
encodages iso8859-15.
|
|||
|
|
|||
|
Ou plus simplement, taper :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
grep Xlat9-10x20.pcf /usr/X11R6/lib/X11/fonts/misc/*
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Puis utiliser le second param<61>tre comme nom de police, par exemple avec
|
|||
|
rxvt, xiterm, aterm ou wterm:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
aterm -fn -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Cela lance un terminal X utilisant une des polices latin9.
|
|||
|
|
|||
|
<sect>R<>glage du clavier pour les applications en mode texte<p>
|
|||
|
|
|||
|
<sect1>Tout d'abord<p>
|
|||
|
|
|||
|
Le huiti<74>me bit doit survivre <20> l'entr<74>e du noyau,
|
|||
|
assurez-vous-en donc avec :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
stty cs8 -istrip -parenb
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
-NO8BIT
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Une police, des polices...<p>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<sect2>a) Historique des polices<p>
|
|||
|
|
|||
|
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<EFBFBD>vu pour des <20>tats-uniens, il <20>tait impossible d'incorporer des
|
|||
|
caract<EFBFBD>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
|
|||
|
<EFBFBD> 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<EFBFBD>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<EFBFBD>ment<EFBFBD>.
|
|||
|
|
|||
|
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
|
|||
|
<EFBFBD> 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<EFBFBD>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 !
|
|||
|
|
|||
|
<sect2>b) ISO 8859-15 latin 9<p>
|
|||
|
|
|||
|
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<EFBFBD>ais et les Finlandais :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> <20> e dans l'o <20> en majuscule et minuscule pour les Fran<61>ais, par
|
|||
|
exemple pour les mots oeuf, coeur, boeuf, oeil ...
|
|||
|
<item> <20> s chapeau invers<72> <20> en majuscule et minuscule pour les Finlandais
|
|||
|
<item> <20> z chapeau invers<72> <20> en majuscule et minuscule pour les Finlandais
|
|||
|
<item> <20> l'EURO <20> pour tous les pays europ<6F>ens
|
|||
|
</itemize>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<sect2>c) Utiliser les polices ISO 8859-15 latin 9<p>
|
|||
|
|
|||
|
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 :
|
|||
|
<itemize>
|
|||
|
<item> par tradition l'opposition latN/latNu selon l'inclusion ou non d'une
|
|||
|
table de correspondance Unicode.
|
|||
|
<item> 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...
|
|||
|
</itemize>
|
|||
|
|
|||
|
J'ai donc compl<70>t<EFBFBD> par 2 types de ma cr<63>ation pour r<>pondre au mieux aux
|
|||
|
diff<EFBFBD>rents besoins.
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
| 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
|
|||
|
--------------------------------------------------------------------------
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Voici plus d'explications :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> les lat9 tout court ne contiennent pas de table de correspondance
|
|||
|
Unicode, ce qui fait que tous les symboles mon<6F>taires internationaux
|
|||
|
appara<EFBFBD>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
|
|||
|
<EFBFBD> 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 <htmlurl name="site de
|
|||
|
Yann Dirson"
|
|||
|
url="http://www.multimania.com/ydirson/en/lct/lct/lct-6.html">, il
|
|||
|
semble donc que toutes les polices devraient contenir une table de
|
|||
|
correspondance Unicode...
|
|||
|
|
|||
|
<item> 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<EFBFBD>res semi graphiques sous Yast, mc, ou d'autres programmes bas<61>s
|
|||
|
sur ncurses ou dialog.
|
|||
|
|
|||
|
<item> 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<EFBFBD>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 !
|
|||
|
</itemize>
|
|||
|
|
|||
|
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<EFBFBD>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<EFBFBD>cifiques au latin9 en Unicode *pur*, <20> l'exception des caract<63>res
|
|||
|
sp<EFBFBD>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.
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
loadunimap fonts/linux-console/lat9.uni
|
|||
|
setfont fonts/linux-console/lat9-16.psf
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour utiliser la police lat9w-16.psf ou une autre lat9u, lat9v ou
|
|||
|
lat9w :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
setfont /fonts/linux-console/lat9w-16.psf
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect2>d) Unicode<p>
|
|||
|
|
|||
|
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...
|
|||
|
|
|||
|
<sect2>e) Utiliser les possibilit<69>s Unicode<p>
|
|||
|
|
|||
|
Essayez par exemple ce fichier <tt/unicode-lance/ pour passer en mode Unicode:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
#!/bin/sh
|
|||
|
echo -e '\033%8'
|
|||
|
kbd_mode -u
|
|||
|
loadkeys fr-unicode.map
|
|||
|
setfont lat9u-16.psf
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
et ce fichier <tt/latin-retourne/ pour revenir en mode latin normal:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
#!/bin/sh
|
|||
|
echo -e '\033%@'
|
|||
|
kbd_mode -a
|
|||
|
loadkeys fr-latin9.map
|
|||
|
setfont lat9w-16.psf
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Essayez par exemple de lire le fichier <tt/unicode.txt/, encod<6F> en
|
|||
|
Unicode, une fois <tt/unicode-lance/ activ<69>.
|
|||
|
|
|||
|
Vous ne verrez sinon qu'un texte mal encod<6F>, sans caract<63>res 8 bits,
|
|||
|
comme cet exemple :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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 !
|
|||
|
<EFBFBD>~Ga marche moyennement disons !
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Les locales, messages en Fran<61>ais<p>
|
|||
|
|
|||
|
Linux en 'version fran<61>aise' existe... mais ne semble pas facile
|
|||
|
<EFBFBD> obtenir.
|
|||
|
|
|||
|
La librairie locale(7) [cf aussi perllocale, setlocale, getlocale]
|
|||
|
utilis<EFBFBD>e par la librairie C se sert de variables d'environnement pour
|
|||
|
d<EFBFBD>finir les pr<70>f<EFBFBD>rences linguistiques et nationales.
|
|||
|
|
|||
|
Pablo Saratxaga r<>pondait ainsi <20> Pascal Rigaux en prenant l'exemple de sort :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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.
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Il existe diff<66>rente variables <20> exporter, avec chacune une fonction
|
|||
|
sp<EFBFBD>cifique ; le format standardis<69> est:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
langue[_PAYS[.CHARSET]][@variante]
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Les crochets d<>notent l'optionalit<69>, par exemple: 'fr', 'fr_BE',
|
|||
|
'fr_CH.ISO-8859-15', no@bokmaal, no@nynorsk,...
|
|||
|
|
|||
|
Les fonctions de la libc, celle de GNU en tout cas, iront chercher dans
|
|||
|
<EFBFBD> l'ordre d<>croissant <20> si on peut dire; par exemple si on sp<73>cifie
|
|||
|
'fr_CH.ISO-8859-15' elles chercheront d'abord avec cette valeur, puis
|
|||
|
avec 'fr_CH' puis avec 'fr'.
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> LC_COLLATE d<>finit les <20>quivalences de caract<63>res pour les comparaisons
|
|||
|
(æ peut <20>tre <20>quivalent <20> ae), pour les ligatures et pour les c<>sures.
|
|||
|
<item> LC_CTYPE d<>finit les caract<63>res affichables
|
|||
|
<item> LC_MONETARY d<>finit le format et le symbole de la monnaie utilis<69>e
|
|||
|
<item> LC_NUMERIC d<>finit le format num<75>rique : regroupement, marqueur
|
|||
|
d<EFBFBD>cimal...
|
|||
|
<item> LC_MESSAGES d<>finit la langue des messages
|
|||
|
<item> LC_TIME d<>finit le format de la date, les noms des jours et
|
|||
|
des mois
|
|||
|
<item> 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.
|
|||
|
<item> LANG diff<66>rent des variables pr<70>c<EFBFBD>dentes, contient
|
|||
|
le code langue au format iso : fr,en,de...
|
|||
|
<item> 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
|
|||
|
</itemize>
|
|||
|
|
|||
|
Les valeurs utilisables pour les francophones sont:
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> fr fran<61>ais g<>n<EFBFBD>rique
|
|||
|
<item> fr_FR fran<61>ais de France
|
|||
|
<item> fr_BE fran<61>ais de Belgique
|
|||
|
<item> fr_CH fran<61>ais de Suisse
|
|||
|
<item> fr_LU fran<61>ais du Luxembourg
|
|||
|
<item> fr_CA fran<61>ais du Canada
|
|||
|
</itemize>
|
|||
|
|
|||
|
Par exemple, si vous <20>tre un Fran<61>ais de France, il suffit d'indiquer
|
|||
|
sous bash :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
export LANGUAGE=fr_FR
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Exemple :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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> :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
export LC_ALL="fr_FR@euro"
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour cela, installer les nouveaux fichiers sources de locales dans
|
|||
|
<tt>/usr/share/i18n/</tt> en lan<61>ant :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cp charmaps/ISO-8859-15 /usr/share/i18n/charmaps/ISO-8859-15
|
|||
|
cp locales/* /usr/share/i18n/locales/
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Alors, r<>g<EFBFBD>n<EFBFBD>rer les locales <20> binaires <20> de <tt>/usr/share/locales</tt>, par exemple :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cd /usr/lib/locales
|
|||
|
rm -fr fr_FR
|
|||
|
mv fr_FR@euro fr_FR
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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<EFBFBD>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 <tt>/usr/share/locale</tt>. S'ils manquent, vous pouvez r<>cup<75>rer
|
|||
|
leur <htmlurl name="source" url="ftp://dkuug.dk/i18n/WG15-collection">
|
|||
|
|
|||
|
Concernant les autres fichiers abord<72>s dans cet article, vous les
|
|||
|
trouverez avec les autres fichiers de cet HOWTO sur
|
|||
|
<htmlurl name="ma page"
|
|||
|
url="http://metalab.unc.edu/guylhem/francophones-howto.tgz">.
|
|||
|
|
|||
|
<sect1>Son linux en fran<61>ais<p>
|
|||
|
|
|||
|
Pour se faire <tt/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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
<EFBFBD>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<EFBFBD>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>.
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Autre astuce pour m<>nager les vieux logiciels :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cd /usr/lib
|
|||
|
ln -sf /usr/share/locale .
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Ne pas oublier de t<>l<EFBFBD>charger sur le <htmlurl name="site du lip6"
|
|||
|
url="ftp://ftp.lip6.fr"> :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> 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.
|
|||
|
|
|||
|
<item> Une int<6E>ressante documentation technique : locale.fr, par P. D'Cruze,
|
|||
|
adapt<EFBFBD>e par <20>. Dumas
|
|||
|
</itemize>
|
|||
|
|
|||
|
Pour en apprendre davantage lire la page de manuel de <20> locale <20> : biblioth<74>que
|
|||
|
de pages de manuel 5 ou 7 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
bash# man 5 locale
|
|||
|
bash# man 7 locale
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Les variables<p>
|
|||
|
|
|||
|
Ces variables doivent <20>tre export<72>es <20> chaque login :
|
|||
|
mettez les donc dans <tt/.bashrc/ et <tt/.bash_login/, <tt/.tcshrc/ ou
|
|||
|
/etc/profile :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
# 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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
N'oubliez pas : tous les fichiers ici cit<69>s dont le nom commence par
|
|||
|
<EFBFBD> . <20> doivent se trouver dans votre r<>pertoire maison ~/
|
|||
|
|
|||
|
<sect1>Les caract<63>res 8 bits dans les programmes utilisant readline tels bash ou ncftp...<p>
|
|||
|
|
|||
|
Readline est une librairie de saisie de caract<63>res avec historique et
|
|||
|
compl<EFBFBD>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<EFBFBD>es avec readline, comme bash pour les versions sup<75>rieures <20>
|
|||
|
1.13, ajoutez ceci dans votre fichier $INPUTRC, par d<>faut
|
|||
|
<tt>~/.inputrc</tt>) :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
# 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&tilde":end-of-line
|
|||
|
"\e\C-h": backward-kill-word
|
|||
|
"\e\e[3˜": kill-word
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Cela vous permettra d'effacer des caract<63>res vers l'avant avec
|
|||
|
<EFBFBD> Delete <20> et vers l'arri<72>re avec <20> BackSpace <20>, ceci n'<27>tant pas
|
|||
|
pr<EFBFBD>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<EFBFBD>t.
|
|||
|
|
|||
|
Le code physique :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
^[
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
"\e[7~": beginning-of-line
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
au <tt/.inputrc/.
|
|||
|
|
|||
|
Plus de documentation est disponible sur la page de manuel de bash, section
|
|||
|
<tt/READLINE/.
|
|||
|
|
|||
|
On peut aussi, gr<67>ce <20> la variable d'environnement <tt/INPUTRC/, utiliser un
|
|||
|
fichier commun <20> tous les utilisateurs.
|
|||
|
|
|||
|
Enfin, je vous recommande d'utiliser ce fichier <tt/.bashrc/ <20> placer
|
|||
|
dans votre r<>pertoire maison :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
# ~/.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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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<EFBFBD>senter des diff<66>rences pour afficher par exemple une citation en
|
|||
|
la<EFBFBD>ant le programme <20> fortune <20>.
|
|||
|
|
|||
|
<sect1>zsh<p>
|
|||
|
Celui-ci devrait se contenter d'un <tt/stty pass8/.
|
|||
|
|
|||
|
Si cela ne suffisait pas, rajouter dans le <tt/.zshrc/ ou dans
|
|||
|
<tt>/etc/zshrc</tt>:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
|
|||
|
<sect1>tcsh<p>
|
|||
|
|
|||
|
Pour tcsh, placer, dans le fichier <tt>/etc/csh.login</tt> ou dans les
|
|||
|
fichiers <tt/.tcshrc/ des utilisateurs concern<72>s, les variables
|
|||
|
indiqu<EFBFBD>es plus haut en rempla<6C>ant export par setenv:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
setenv LC_CTYPE=ISO-8859-1
|
|||
|
setenv LANGUAGE=fr
|
|||
|
setenv LC_MESSAGES=fr
|
|||
|
setenv LC_ALL=fr
|
|||
|
setenv LANG=fr
|
|||
|
setenv LESSCHARSET=latin1
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Pour tous les shells<p>
|
|||
|
|
|||
|
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...
|
|||
|
|
|||
|
À 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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(guylhem@victis:tcsh)# setenv LC_CTYPE ISO-8859-1
|
|||
|
(guylhem@victis:tcsh)# stty pass8
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>L'heure<p>
|
|||
|
|
|||
|
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<EFBFBD>ciproquement...
|
|||
|
|
|||
|
a) D'abord, quelle heure est-il :-) ?
|
|||
|
|
|||
|
Apr<EFBFBD>s avoir regard<72> sur la pendule la plus proche de vous, tapez :
|
|||
|
|
|||
|
<tt>
|
|||
|
clock
|
|||
|
</tt>
|
|||
|
|
|||
|
puis
|
|||
|
|
|||
|
<tt>
|
|||
|
date
|
|||
|
</tt>
|
|||
|
|
|||
|
La premi<6D>re heure est celle du bios, la seconde celle calcul<75>e
|
|||
|
par Linux <20> partir de <tt>/etc/zoneconfig</tt>.
|
|||
|
|
|||
|
Pour peu que vous ayez install<6C> timezone, votre machine peut jongler
|
|||
|
ais<EFBFBD>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<EFBFBD>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
|
|||
|
<EFBFBD> r<>glage du fuseau <20>.
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> Pour les fran<61>ais, belges wallons et suisses romands :
|
|||
|
</itemize>
|
|||
|
|
|||
|
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 !
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> Pour les canadiens fran<61>ais :
|
|||
|
</itemize>
|
|||
|
|
|||
|
Vous <20>tes dans une zone horaire GMT-4 si vous habitez autour de
|
|||
|
Montr<EFBFBD>al .
|
|||
|
|
|||
|
Pour les autres provinces, consulter un dictionnaire !
|
|||
|
|
|||
|
Premi<EFBFBD>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<EFBFBD>s lors, clock et date doivent vous retourner la m<>me heure...
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> Pour les canadiens fran<61>ais : utilisez GMT+4
|
|||
|
</itemize>
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> Pour les fran<61>ais, belges wallons et suisses romands :
|
|||
|
</itemize>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tt>
|
|||
|
ln -sf /usr/lib/zoneinfo/Etc/GMT-2 /etc/zoneconfig
|
|||
|
</tt>
|
|||
|
|
|||
|
<tt>
|
|||
|
clock
|
|||
|
</tt>
|
|||
|
|
|||
|
<tt>
|
|||
|
date
|
|||
|
</tt>
|
|||
|
|
|||
|
L'heure calcul<75>e correspond donc <20> l'heure de Greenwich, l'heure
|
|||
|
syst<EFBFBD>me <20> l'heure locale... soit l'inverse de ce que l'on veut.
|
|||
|
|
|||
|
Un simple :
|
|||
|
<tt>
|
|||
|
clock -w
|
|||
|
</tt>
|
|||
|
|
|||
|
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<EFBFBD>me.
|
|||
|
|
|||
|
d) R<>gler le fuseau horaire :
|
|||
|
|
|||
|
Tapez alors :
|
|||
|
<tt>
|
|||
|
ln -sf /usr/lib/zoneinfo/Europe/Votre-ville /etc/zoneconfig
|
|||
|
</tt>
|
|||
|
|
|||
|
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<EFBFBD>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 :
|
|||
|
|
|||
|
<tt>
|
|||
|
ln -sf /usr/lib/zoneinfo/Europe/Moscow /etc/zoneconfig
|
|||
|
</tt>
|
|||
|
|
|||
|
Tr<EFBFBD>s simple et tr<74>s utile : plus besoin de se souvenir du
|
|||
|
d<EFBFBD>calage horaire (plus ou moins X heures) puisque Linux se charge
|
|||
|
d<EFBFBD>sormais de tout !
|
|||
|
|
|||
|
<sect1>vi<p>
|
|||
|
|
|||
|
Normalement, aucune modification n'est n<>cessaire <20> part l'utilisation de
|
|||
|
loadkeys (d<>taill<6C>e plus haut).
|
|||
|
|
|||
|
Ce fichier <tt/.vimrc/ pourrait toutefois vous <20>tre utile si vous utilisez
|
|||
|
<tt/vim/ au lieu d'<tt/elvis/ :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
" 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
|
|||
|
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Emacs<p>
|
|||
|
|
|||
|
Voici un fichier de configuration de base pour employer les accents.
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
;;
|
|||
|
;; 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))
|
|||
|
))
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Le Keyboard-HOWTO conseille quand <20> lui :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(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)
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Utilisez une version au moins <20>gale <20> 19.27, modifiez le fichier global
|
|||
|
(commun <20> tous les utilisateurs)
|
|||
|
<tt>/usr/lib/emacs/site-lisp/site-start.el</tt> ou le <tt>./emacs</tt>
|
|||
|
de chaque utilisateur concern<72> pour y ajouter :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(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)
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Pour les autres versions :
|
|||
|
|
|||
|
<itemize>
|
|||
|
|
|||
|
<item> 19.19 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(standard-display-european 1)
|
|||
|
(set-input-mode (car (current-input-mode))
|
|||
|
(nth 1 (current-input-mode))
|
|||
|
0)
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Lire <20> ce propos le fichier emacs.info.
|
|||
|
|
|||
|
<item> 19.22 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(load-library "iso-transl")
|
|||
|
(standard-display-european t)
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<item> Autres :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(standard-display-european 1)
|
|||
|
(load-library "iso-transl")
|
|||
|
</verb></tscreen>
|
|||
|
</itemize>
|
|||
|
|
|||
|
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 <tt/.emacs/ :
|
|||
|
<tscreen><verb>
|
|||
|
(if (eq window-system 'x)
|
|||
|
(global-set-key (read-kbd-macro "DEL") 'delete-char)
|
|||
|
(or (global-set-key "^[[3~" 'delete-char))
|
|||
|
)
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
<itemize>
|
|||
|
<item> le nom du dictionnaire
|
|||
|
<item> la liste des caract<63>res composant un mot
|
|||
|
<item> la lise oppos<6F>e des caract<63>res ne composant pas un mot
|
|||
|
<item> les caract<63>res de liaison <20> l'int<6E>rieur des mots ("-", "'"...)
|
|||
|
<item> vrai ou faux si ces caract<63>res peuvent <20>tre pr<70>sents en plusieurs
|
|||
|
exemplaire dans le mot
|
|||
|
<item> une liste d'arguments pour ispell
|
|||
|
<item> le mode d'ispell (tex, nroff..)
|
|||
|
</itemize>
|
|||
|
|
|||
|
Par exemple, dans le fichier <tt/.emacs/ :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(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")
|
|||
|
))
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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
|
|||
|
<tt/.emacs/ :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(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))
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>less<p>
|
|||
|
|
|||
|
<tt>/etc/profile</tt> ou les fichiers de d<>marrage du shell (comme
|
|||
|
<tt/.bashrc/ et <tt/.bash_profile/ dans votre r<>pertoire maison)
|
|||
|
doivent contenir :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
export LESSCHARSET=latin1
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Comme fichier <tt/.lessrc/ je vous recommande :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
\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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
lesskey -o .less .lessrc
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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>,
|
|||
|
<EFBFBD> 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'
|
|||
|
|
|||
|
<sect1>ls<p>
|
|||
|
|
|||
|
Utilisez les options :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
-N --color=auto
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
alias ll="ls --color=auto -N -l -a"
|
|||
|
alias d="ls --color=auto -N"
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Un simple <tt>d</tt> remplacera le classique <tt>ls</tt>, en y ajoutant la
|
|||
|
couleur, alors que <tt>ll</tt> 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.
|
|||
|
|
|||
|
<sect1>flex<p>
|
|||
|
|
|||
|
Donnez l'option :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
-8
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
si l'analyseur g<>n<EFBFBD>r<EFBFBD> doit accepter les entr<74>es 8-bits
|
|||
|
(bien s<>r qu'il doit le faire !).
|
|||
|
|
|||
|
<sect1>elm<p>
|
|||
|
|
|||
|
Rajoutez ces trois lignes dans votre <tt>.elm/elmrc</tt> :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
charset = iso-8859-1
|
|||
|
displaycharset = iso-8859-1
|
|||
|
textencoding = 8bit
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>col<p>
|
|||
|
|
|||
|
Assurez-vous :
|
|||
|
|
|||
|
1) qu'il a <20>t<EFBFBD> corrig<69> et fasse un
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
setlocale(LC_CTYPE,"");
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
2) de d<>finir
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
LC_CTYPE=ISO-8859-1
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
dans l'environment.
|
|||
|
|
|||
|
<sect1>rlogin<p>
|
|||
|
|
|||
|
Utilisez l'option :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
-8
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>joe<p>
|
|||
|
|
|||
|
Utiliser <htmlurl name="joe 2.8"
|
|||
|
url="ftp://metalab.unc.edu:/pub/Linux/apps/editors/joe-2.8.tar.gz"> ou
|
|||
|
plus r<>cent qui devraient fonctionner apr<70>s <20>dition du fichier de
|
|||
|
configuration : placer l'option -asis dans <tt>/usr/lib/joerc</tt> en
|
|||
|
premi<EFBFBD>re colonne.
|
|||
|
|
|||
|
<sect1>TeX et LaTeX<p>
|
|||
|
|
|||
|
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 <tt>standard</tt> non modifi<66>e, il suffit
|
|||
|
d'ajouter au d<>but de chaque fichier :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item>
|
|||
|
Pour LaTeX:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
\documentstyle[isolatin]{article}
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<item>
|
|||
|
Pour LaTeX2e:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
\documentclass[12pt,a4paper]{letter}
|
|||
|
\usepackage{isolatin1}
|
|||
|
\usepackage[french]{babel}
|
|||
|
\usepackage{t1enc}
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
ou alors :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
\usepackage[latin1]{inputenc}
|
|||
|
\usepackage[T1]{fontenc}
|
|||
|
</verb></tscreen>
|
|||
|
</itemize>
|
|||
|
|
|||
|
Au cas o<> votre distribution soit trop vieille pour l'inclure,
|
|||
|
<tt>isolatin.sty</tt> est disponible <htmlurl name="s<>par<61>ment"
|
|||
|
url="ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit">
|
|||
|
|
|||
|
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
|
|||
|
<EFBFBD>tats-unien dit <20> l<>gal <20>, de taille proche, mais non exactement <20>gale,
|
|||
|
<EFBFBD> celle du standard <20> A4 <20>.
|
|||
|
|
|||
|
Ces options sont les suivantes :
|
|||
|
|
|||
|
<tt>
|
|||
|
gs -sPAPERSIZE=a4
|
|||
|
xdvi -paper a4
|
|||
|
ghostview -a4
|
|||
|
</tt>
|
|||
|
|
|||
|
Pour que dvips convertisse les documents dans un format papier a4, il faut
|
|||
|
sp<EFBFBD>cifier dans le fichier config.ps (le chemin varie en fonction des versions
|
|||
|
de LaTeX) : /usr/lib/texmf/dvips/config.ps ou <tt>.dvipsrc</tt>
|
|||
|
|
|||
|
<tt>
|
|||
|
@ a4 210mm 297mm
|
|||
|
@+ ! %%DocumentPaperSizes: a4
|
|||
|
@+ %%PaperSize: a4
|
|||
|
@+ %%BeginPaperSize: a4
|
|||
|
@+ a4
|
|||
|
</tt>
|
|||
|
|
|||
|
Sinon ajoutez <20> votre <tt>.Xresources</tt> :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
XDvi.paper: a4
|
|||
|
Ghostview.pageMedia: A4
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Manuel<p>
|
|||
|
|
|||
|
Tout d'abord, il faut vous procurer les pages de manuel Linux traduites en
|
|||
|
<htmlurl name="fran<61>ais"
|
|||
|
url="ftp://ftp.lip6.fr/pub/linux">
|
|||
|
|
|||
|
Si vous utilisez une distribution RedHat ou Debian, celles-ci sont
|
|||
|
pr<EFBFBD>sentes sur le c<>d<EFBFBD>rom : il suffit de les
|
|||
|
s<EFBFBD>lectionner lors de l'installation.
|
|||
|
|
|||
|
De l<>, deux possibilit<69>s :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> soit vous ne voulez que des manuels en Fran<61>ais, auquel cas il
|
|||
|
faut faire un :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
export MANPATH=/usr/man/fr_FR
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
NB: fr_FR se remplace par fr_BE, fr_CA, fr_CH ou fr_LU selon le pays concern<72>.
|
|||
|
|
|||
|
<item> soit vous pr<70>f<EFBFBD>rez par d<>faut des manuels en
|
|||
|
Fran<EFBFBD>ais et si la page n'existe pas, vous vous rabattez vers l'Anglais,
|
|||
|
il suffira alors de taper :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
export LANG=fr
|
|||
|
</verb></tscreen>
|
|||
|
</itemize>
|
|||
|
|
|||
|
<tt>man</tt> ira chercher dans le <20> MANPATH <20> des pages en <20> LANG <20> par
|
|||
|
d<EFBFBD>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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cp standard/iso_8859_15.7.gz /usr/local/man/man7/
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Correcteur orthographique ispell<p>
|
|||
|
|
|||
|
Vous pouvez vous le procurer sur le <htmlurl name="site original d'Hydro Qu<51>bec"
|
|||
|
url="ftp://ftp.ireq-robot.hydro.qc.ca:/pub/ispell/francais-IREQ-1.3.tar.gz">
|
|||
|
ou sur le <htmlurl name="mirroir du lip6"
|
|||
|
url="ftp://ftp.lip6.fr/pub/ispell/francais">
|
|||
|
|
|||
|
Un fichier LISEZMOI explique pas <20> pas et en Fran<61>ais
|
|||
|
l'installation.
|
|||
|
|
|||
|
<sect1>Les claviers 105 touches<p>
|
|||
|
|
|||
|
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 <tt>french.map</tt> et d<>commenter les lignes
|
|||
|
en parlant !
|
|||
|
|
|||
|
De m<>me pour <tt>french</tt> (pour Xwindow).
|
|||
|
|
|||
|
<sect1>PGP<p>
|
|||
|
|
|||
|
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<EFBFBD>rement, il faut se procurer pgp-international (<28> cause de
|
|||
|
probl<EFBFBD>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<EFBFBD> d'un algorithme encore plus puissant) sur le
|
|||
|
<htmlurl name="site norv<72>gien de PGP" url="ftp://ftp.ifi.uio.no/pub/pgp/">
|
|||
|
|
|||
|
Ensuite, mettre dans votre r<>pertoire maison, dans un sous
|
|||
|
r<EFBFBD>pertoire .pgp les fichiers :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
config.txt
|
|||
|
language.idx
|
|||
|
pgpdoc1.txt
|
|||
|
pgpdoc2.txt
|
|||
|
language.txt
|
|||
|
fr.hlp
|
|||
|
en.hlp
|
|||
|
pgp.hlp
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Enfin, <20>diter le fichier <tt>.pgp/config.txt</tt> pour y rajouter :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
Language = fr
|
|||
|
CharSet = latin1
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Lisez ensuite <tt>.pgp/fr.hlp</tt> pour apprendre <20> vous servir de pgp !
|
|||
|
|
|||
|
<sect1>Impression en mode ascii<p>
|
|||
|
|
|||
|
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<68><61> <20> la place de <20> <20> <20>, et autres choses du m<>me genre.
|
|||
|
|
|||
|
Il existe d'autres utilisation au programme <tt/recode/ : <20> ibmpc:lat1 <20> ou
|
|||
|
<EFBFBD> lat1:ibmpc <20> (de ou vers MS-DOS) ou <20> applemac <20> pour Macintosh (tm).
|
|||
|
|
|||
|
<sect1>Unicode/latin/cp... je n'ai pas compris ce dernier paragraphe !<p>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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<EFBFBD>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<EFBFBD>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<EFBFBD>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
|
|||
|
<EFBFBD> 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 :)
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 .
|
|||
|
|
|||
|
<sect1>ncurses<p>
|
|||
|
|
|||
|
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...
|
|||
|
|
|||
|
<sect2>Introduction<p>
|
|||
|
|
|||
|
La version standard de curses utilise le huiti<74>me bit pour la vid<69>o
|
|||
|
invers<EFBFBD>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.
|
|||
|
|
|||
|
<sect2>Les accents<p>
|
|||
|
|
|||
|
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<EFBFBD>me : la fonction wgetch() de ncurses renvoie les codes suivants :
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> je tape '<27>' et wgetch retourne <20> meta-i <20> code 233 (decimal)
|
|||
|
<item> " " '<27>' " " " <20> meta-h <20> code 234 (decimal)
|
|||
|
<item> etc
|
|||
|
</itemize>
|
|||
|
|
|||
|
C'est normal avec les polices iso-8859-1 !
|
|||
|
|
|||
|
Il faut installer les <20> locales <20> ou mettre <20> jour sa version de
|
|||
|
ncurses.
|
|||
|
|
|||
|
<sect1>Perl<p>
|
|||
|
|
|||
|
Si tout d'un coup apr<70>s une mise <20> jour il raconte :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
(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)$
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
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 <htmlurl
|
|||
|
name="sources WG15collection.tar.gz"
|
|||
|
url="ftp://ftp.lip6.fr:/pub/linux/GCC"> 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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
unset LANG
|
|||
|
unset LC_CTYPE
|
|||
|
unset LC_COLLATE
|
|||
|
export LC_ALL=fr_FR.ISO-8859-1
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Installer les locales<p>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<itemize>
|
|||
|
<item> r<>cup<75>rer pour la libc5 la collection de
|
|||
|
<htmlurl name="locales POSIX"
|
|||
|
url="ftp://ftp.lip6.fr/pub/linux/GCC/WG15-collection.linux.tar.gz">
|
|||
|
<item> ou pour la libc6, elle est dans l'ajout
|
|||
|
<htmlurl name="<22> glibc-localedata <20>"
|
|||
|
url="ftp://ftp.lip6.fr/pub/gnu/glibc-localedata-2.0.6.tar.gz">
|
|||
|
<item> copier dans le r<>pertoire /usr/share/locale les fichiers fr_FR et en_DK
|
|||
|
(qui est inclus dans fr_FR)
|
|||
|
<item> cr<63>er le r<>pertoire /usr/share/i18n/charmap et copier le fichier
|
|||
|
ISO_8859-1:1987
|
|||
|
<item> faire man localedef et lancer la commande :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
localedef -f ISO_8859-1:1987 -i fr_FR fr
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Ceci cr<63>era l'entr<74>e fr dans /usr/share/locale soit :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
/usr/share/locale/fr
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Ce r<>pertoire devrait maintenant contenir les fichiers :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
LC_COLLATE
|
|||
|
LC_CTYPE
|
|||
|
LC_MESSAGES
|
|||
|
LC_MONETARY
|
|||
|
LC_NUMERIC
|
|||
|
LC_TIME
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<item> 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 Éric DUMAS (h<>las ce doc ne traite principalement que de
|
|||
|
LC_MESSAGES. <20> quand la suite <20>ric ? ;-) )
|
|||
|
|
|||
|
<item> compl<70>ter <20>ventuellement l'initialisation des variables du shell comme
|
|||
|
d<EFBFBD>crit dans la section sur bash ou tcsh
|
|||
|
<item> 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 !
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
setlocale(LC_CTYPE,"fr_FR");
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<item> <20>a y est ! Les accents sont disponibles dans ncurses.
|
|||
|
</itemize>
|
|||
|
|
|||
|
<sect2>Midnight Commander (mc)<p>
|
|||
|
|
|||
|
En changeant de police, il peut arriver que les lignes de cadre soient
|
|||
|
remplac<EFBFBD>es par divers caract<63>res.
|
|||
|
|
|||
|
2 possibilit<69>es :
|
|||
|
<itemize>
|
|||
|
<item> La police charg<72>e ne dispose pas de caract<63>res dits <20> semi
|
|||
|
graphiques <20>, qui permettent de dessiner des cadres
|
|||
|
<item> Il y a discordance entre la police et sa table de mappage
|
|||
|
</itemize>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
loadunimap lat1u.uni
|
|||
|
loadunimap lat5u.uni
|
|||
|
loadunimap lat9u.uni
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Kernel<p>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
/usr/bin/loadkeys loadkeys --mktable votre-table-de-clavier.map > /usr/src/linux/drivers/char/defkeymap.c
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Lilo<p>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<sect1>Groff (man)<p>
|
|||
|
|
|||
|
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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
NROFF /usr/bin/groff -Tascii -mandoc
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Remplacez-l<> par :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
NROFF /usr/bin/groff -Tlatin1 -mandoc
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Les vieilles versions de man utilisent aussi col, et le point suivant
|
|||
|
s'applique aussi.
|
|||
|
|
|||
|
<sect1>Divers<p>
|
|||
|
|
|||
|
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
|
|||
|
<htmlurl name="disponible"
|
|||
|
url="ftp://grasp.insa-lyon.fr/pub/faq/fr/accents">
|
|||
|
|
|||
|
<sect>R<>glage du clavier pour les applications X
|
|||
|
|
|||
|
<sect1>Les xterminaux (xterm, nxterm, rxvt...)<p>
|
|||
|
|
|||
|
Les faire fonctionner avec toutes les touches standard du clavier 102 touches
|
|||
|
rel<EFBFBD>ve du miracle, quant aux accents, seule une recompilation vous
|
|||
|
permettra de les utiliser !
|
|||
|
|
|||
|
Pour xterm, essayez de mettre dans votre <tt>.Xdefaults</tt> :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Dans <tt>.inputrc</tt> :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
# pour rxvt
|
|||
|
"\e[7˜":beginning-of-line
|
|||
|
"\e[8˜":end-of-line
|
|||
|
# pour xterm
|
|||
|
"\e[H": beginning-of-line
|
|||
|
"\e[F": end-of-line
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
Mais ces deux solutions ne vous garantissent pas de r<>soudre tous les
|
|||
|
probl<EFBFBD>mes de rxvt et de xterm ...
|
|||
|
|
|||
|
Pour les r<>soudre sans cr<63>er de fichiers dans
|
|||
|
<tt>/usr/X11R6/lib/X11/app-defaults</tt>, 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<EFBFBD> num<75>rique, fonctionnant comme en mode console, i.e.
|
|||
|
Shift-Page_Up permettant de faire d<>filer une page, voire mieux : le
|
|||
|
pav<EFBFBD> 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 <htmlurl name="mon site"
|
|||
|
url="http://metalab.unc.edu/guylhem/xiterm"> 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 :
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect1>Les applications Motif<p>
|
|||
|
|
|||
|
L<EFBFBD>, 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... ) !
|
|||
|
|
|||
|
<sect1>Le manuel<p>
|
|||
|
|
|||
|
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 <htmlurl name="sources"
|
|||
|
url="ftp.lip6.fr:/pub/linux/distributions/redhat-contrib/SRPMS/xman-3.1.6-3.src.rpm">
|
|||
|
ou en <htmlurl name="binaires"
|
|||
|
url="ftp.lip6.fr:/pub/linux/distributions/redhat-contrib/i386/xman-3.1.6-3.i386.rpm">
|
|||
|
|
|||
|
<sect1>NumLock<p>
|
|||
|
|
|||
|
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...
|
|||
|
|
|||
|
<sect1>XDM<p>
|
|||
|
|
|||
|
/etc/X11/xdm/Xresources sert <20> ne rencontrer aucun probl<62>me avec les
|
|||
|
touches <20> sp<73>ciales <20> (Home, End ...) sous X.
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
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()
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<sect>Remerciements<p>
|
|||
|
|
|||
|
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 <htmlurl
|
|||
|
name="freenix"
|
|||
|
url="http://www.freenix.fr/linux/Guide"> ou <htmlurl
|
|||
|
name="le lip6"
|
|||
|
url="ftp://ftp.lip6.fr:/pub/linux/french/docs/">
|
|||
|
|
|||
|
Remercions enfin par ordre alphab<61>tique ces contributeurs :
|
|||
|
<verb>
|
|||
|
Jean-Michel Antoine
|
|||
|
Michel Billaud
|
|||
|
Chmouel Boudjnah
|
|||
|
Stephane Bortzmeyer
|
|||
|
Denis Braussen
|
|||
|
R<EFBFBD>my Card
|
|||
|
Julien Cassaigne
|
|||
|
Xavier Cazin
|
|||
|
Laurent Chemla
|
|||
|
Ren<EFBFBD> Cougnenc
|
|||
|
Bruno Cornec
|
|||
|
Yann Dirson
|
|||
|
Éric Dubreuil
|
|||
|
Éric Dumas
|
|||
|
Arnaud Gomes-do-Vale
|
|||
|
Pierre Ficheux
|
|||
|
Laurent Frigault
|
|||
|
Hugolino
|
|||
|
Antoine Leca
|
|||
|
Frederic Lepied
|
|||
|
Jeannot Langlois
|
|||
|
Stephane Marzloff
|
|||
|
Marc Merlin
|
|||
|
Thomas Parmelan
|
|||
|
Fr<EFBFBD>d<EFBFBD>ric Petit
|
|||
|
Thomas Quinot
|
|||
|
David Robert
|
|||
|
Olivier Robert
|
|||
|
Benjamin Ryzman
|
|||
|
Pablo Saratxaga
|
|||
|
Julien Simon
|
|||
|
Lo<EFBFBD>c Tortay
|
|||
|
J.M. Vansteene
|
|||
|
</verb>
|
|||
|
|
|||
|
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> oeil.qc.ca), 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 !
|
|||
|
|
|||
|
</article>
|
|||
|
|