Le Francophones-HOWTO : Linux & la langue francaise
 Ecrit par Guylhem Aznar, <guylhem(a)oeil.qc.ca>
 v3.2 ; Dcembre 1999

 Copyright (C) 1997, 1998, 1999, Guylhem Aznar ; librement distribuable
 selon les termes du LDP.  Toutes les marques cites appartiennent
 leurs propritaires respectifs.
 ______________________________________________________________________

 Table of Contents
























































 1. Prsentation

    1.1 Introduction
    1.2 Fichiers utiliss dans ce HOWTO
    1.3 Les Franais ne sont pas les seuls francophones !
       1.3.1 a) Diffrentes versions
       1.3.2 b) Les tats-uniens : raccourcis claviers
       1.3.3 c) Le Luxembourg : comme la France
       1.3.4 d) Le Canada : 3 claviers
    1.4 Attention
       1.4.1 a) ROOT
       1.4.2 b) CHERCHER

 2. Les problmes

    2.1 Prsentation
    2.2 Solutions
    2.3 Aider

 3. Le vocabulaire : petit lexique

    3.1 8 bits
    3.2 La police de caractres
    3.3 Les polices de caractres
    3.4 Table de clavier
    3.5  Home ,  End ,  Page_Up  et  Page_Down
    3.6 Touches mortes
    3.7  BackSpace  et  Delete
    3.8  UTC  et  GMT

 4. Rglage du clavier sous Linux

    4.1 Introduction
    4.2 Attention au stty !
    4.3 Faire de ces modifications les dfauts au dmarrage
    4.4 Polices de caractre
    4.5 Vieilles versions
    4.6 Amliorations spcifiques au clavier franais latin9
       4.6.1 a) carr/cube
       4.6.2 b) dollar / livre / symbole montaire international
    4.7 Pour les autres claviers latin9
    4.8 Dans tous les cas

 5. XFree

    5.1 Introduction
    5.2 Mal programmer
    5.3 Le clavier en pratique
       5.3.1 a) Solution utilisant xmodmap
       5.3.2 b) Solution utilisant xkb (recommande)
       5.3.3 c) Solution du compose
       5.3.4 d) Solution modifiant la libX11
       5.3.5 e) Est-ce ncessaire ?
    5.4  latin9  ou  latin1  ?
    5.5 Table de correspondances
    5.6 Les polices ISO 8859-15 latin 9 sous X

 6. Rglage du clavier pour les applications en mode texte

    6.1 Tout d'abord
    6.2 Une police, des polices...
       6.2.1 a) Historique des polices
       6.2.2 b) ISO 8859-15 latin 9
       6.2.3 c) Utiliser les polices ISO 8859-15 latin 9
       6.2.4 d) Unicode
       6.2.5 e) Utiliser les possibilits Unicode
    6.3 Les locales, messages en Franais
    6.4 Son linux en franais
    6.5 Les variables
    6.6 Les caractres 8 bits dans les programmes utilisant readline tels bash ou ncftp...
    6.7 zsh
    6.8 tcsh
    6.9 Pour tous les shells
    6.10 L'heure
    6.11 vi
    6.12 Emacs
    6.13 less
    6.14 ls
    6.15 flex
    6.16 elm
    6.17 col
    6.18 rlogin
    6.19 joe
    6.20 TeX et LaTeX
    6.21 Manuel
    6.22 Correcteur orthographique ispell
    6.23 Les claviers 105 touches
    6.24 PGP
    6.25 Impression en mode ascii
    6.26 Unicode/latin/cp... je n'ai pas compris ce dernier paragraphe !
    6.27 ncurses
       6.27.1 Introduction
       6.27.2 Les accents
    6.28 Perl
    6.29 Installer les locales
       6.29.1 Midnight Commander (mc)
    6.30 Kernel
    6.31 Lilo
    6.32 Groff (man)
    6.33 Divers

 7. Rglage du clavier pour les applications X

    7.1 Les xterminaux (xterm, nxterm, rxvt...)
    7.2 Les applications Motif
    7.3 Le manuel
    7.4 NumLock
    7.5 XDM

 8. Remerciements



 ______________________________________________________________________

 11..  PPrrsseennttaattiioonn



 11..11..  IInnttrroodduuccttiioonn


 Ce document a t rdig pour aider  configurer un ordinateur dot du
 systme d'exploitation Linux pour des utilisateurs francophones.

 Il y est expliqu par exemple comment configurer priphriques et
 applications afin de prendre en compte les particularits et les
 spcificits de notre langue...

 Toutefois, ce document ne traite pas de l'installation du systme
 d'exploitation Linux ; il est implicitement suppos que vous ayez
 correctement install une distribution de Linux, RedHat, Debian ou
 Suse, cette liste n'tant pas exhaustive, et que vous vous apprtiez
 maintenant  mieux la configurer ; veuillez donc vous rfrer  d'autres
 HOWTOs pour l'installation.

 Les adresses lectroniques ont t volontairement supprimes ou modifies
 en remplaant les  a enrouls  par des  ()  afin d'viter les
 publipostages trs gnants.

 Si quelque terme employ vous semble un peu obscur, je vous invite vous
 reporter au lexique ( Vocabulaire : un petit lexique ), expliquant
 certains mots tels 8 bits, AZERTY ou QWERTY, qui sont employs tout au
 long de ce document.


 11..22..  FFiicchhiieerrss uuttiilliissss ddaannss ccee HHOOWWTTOO


 Tous les fichiers cits dans ce HOWTO, sont disponibles sous licence
 GPL sur ma page

 Je vous recommande de tlcharger tous ces fichiers pour les utiliser
 selon les exemples proposs.


 11..33..  LLeess FFrraannaaiiss nnee ssoonntt ppaass lleess sseeuullss ffrraannccoopphhoonneess !!



 11..33..11..  aa)) DDiiffffrreenntteess vveerrssiioonnss


 Pour chaque manipulation dpendant du pays concern, un certain nombre
 de versions peuvent tre proposes :


 +o  une canadienne normalise (cn)

 +o  une belge wallonne (be)

 +o  une franaise (fr)

 +o  une qubcoise (qc)

 +o  une suisse romande (sf)

 +o  une tats-unienne internationale (usx)


 11..33..22..  bb)) LLeess ttaattss--uunniieennss :: rraaccccoouurrcciiss ccllaavviieerrss


 La version tats-unienne internationale permet  tous les francophones
 utilisant un clavier  7 bits  aussi nomm  QWERTY  de bnficier de
 l'tendue des caractres 8 bits.

 Est disponible aussi une version pour ceux qui utilisent un clavier
 Happy Hacking .


 11..33..33..  cc)) LLee LLuuxxeemmbboouurrgg :: ccoommmmee llaa FFrraannccee


 Le Grand Duch du Luxembourg utilisant les conventions franaises,
 j'invite les lecteurs luxembourgeois  se reporter aux exemples
 franais.

 11..33..44..  dd)) LLee CCaannaaddaa :: 33 ccllaavviieerrss


 Il est classique de parler des claviers  canadien international ,
 surtout destins aux anglophones (qui leur prfrent toutefois les
 claviers QWERTY standard) et les claviers  canadien franais , aux
 lettres accentues.

 Mais, de nouveaux claviers dits  canadiens normaliss  ont fait leur
 apparition rcemment pour fusionner les modles  canadien international
 , non concern par le cadre du Francophones HOWTO, et  canadien franais
 .

 Ces nouveaux claviers rpondent aux normes CAN/CSA Z243.200-92 et ISO
 9995-7 ; ils sont prvus pour tre utiliss dans n'importe quelle langue,
 en remplaant par exemple les intituls des touches par des pictogrammes
 :  Del , en anglais, qui se traduisait par  Suppr  en franais devient
 ainsi trois barres obliques fines orientes sud-ouest/nord-est.

 Plus d'explications sont disponibles sur le site de l'Office de la
 Langue Franaise.

 Toutefois je n'ai pas pu russir  me procurer un tel clavier ; mes
 fichiers de configuration sont donc uniquement bass sur les
 (illustrations) et les normes thoriques, et non les normes pratiques.

 Par exemple, si j'ai compris que la touche  Control  de droite est
 utilise comme une  AltGr  mais sert  obtenir encore d'autres
 caractres, je n'ai aucune ide du comportement de ces touches lorsque
 seule l'autre a une srigraphie prvue...

 Si on peut m'envoyer un tel clavier, et surtout son pilote, je promets
 de mettre les fichiers de configuration  jour :-)


 11..44..  AAtttteennttiioonn



 11..44..11..  aa)) RROOOOTT


 Certaines manipulations recommandes par ce document ne peuvent tre
 effectues que sous le compte privilgi  root  ; la plus grande prudence
 est alors de rigueur car toute action inadquate peut mettre en pril le
 contenu des disques.

 Sauvegarder les fichiers existants, par exemple en les copiant sous le
 mme nom suivi du prfixe .old, avant de les modifier ou remplacer.


 11..44..22..  bb)) CCHHEERRCCHHEERR


 Le paquetage GNU nomm "find" offre un programme appel locate, grce
 auquel l'utilisateur peut retrouver le nom complet, chemin de
 rpertoires, d'un fichier dont il ne connat que le nom.

 Certaines distributions Linux fournissent cela en /usr/bin/locate.

 En tant que root, lancer updatedb invoque un find / sur les disques
 monts 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 dans les distributions modernes.)


 locate permet ensuite de localiser l'un d'eux :



              (guylhem@victis:guylhem)$ locate noms_des_fichiers__retrouver





 22..  LLeess pprroobbllmmeess



 22..11..  PPrrsseennttaattiioonn


 Le problme de tout utilisateur francophone aprs l'installation de
 Linux est de lui faire comprendre qu'il utilise des normes diffrentes
 des standards par dfaut tats-uniens..

 Cela a des consquences sur :


 +o  la police de caractres donc les caractres spciaux que l'on utilise,
    accentus comme E E A C ou bien ligaturs comme AE , voire  e dans
    l'o  qui vient d'apparatre sous Linux grce la norme ISO-8859-15
    aussi nomme latin-9

 +o  la correspondance entre la srigraphie des cabochons ou  touches  du
    clavier sur lesquelles vous appuyez, et les codes que Linux
    renvoie, celui-ci supposant un clavier QWERTY tats-unien par dfaut

 +o  le format de page pris en charge par les programmes que vous
    utilisez pour imprimer, diffrent entre les Etats-Unis; (148,5
    pouces pour du papier dit lgal) et l'Europe (29,721 cm pour des
    feuilles a4)

 +o  le format des dates et de l'heure, la position des jours et des
    mois tant variable selon les rgions de la francophonie

 +o  le format de la monnaie, aussi variable selon les francophones

 +o  la langue utilise pour les messages d'erreur


 22..22..  SSoolluuttiioonnss


 Tout est prconfigur pour un tats-unien : bien que ceux-ci ne
 reprsentent pas la majorit de la population mondiale, ils ont t
 prcurseurs en informatique.

 Il faut donc se faire reconnatre comme une  exception  par les
 diffrents programmes, par des options ou des variables  exporter voire
 dans les pires des cas une modification du code source suivie d'une
 recompilation.

 Heureusement, la philosophie GNU de Linux rend le systme trs ouvert
 des modifications de toutes sortes et comme vous allez le dcouvrir au
 fil de ce document, et il est assez simple d'obtenir un rsultat trs
 correct.




 22..33..  AAiiddeerr


 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'me d'un traducteur, n'hsitez pas  contacter l'quipe de
 traduction des HOWTOs ; pour cela, adressez-vous  Eric Dumas
 <dumas()freenix.fr> ou <dumas()linux.eu.org>.


 33..  LLee vvooccaabbuullaaiirree :: ppeettiitt lleexxiiqquuee


 Tout d'abord, un mot sur le vocabulaire employ :


 33..11..  88 bbiittss


 Des caractres sont dits  8 bits  s'ils correspondent  des accents ou
 des signes spciaux comme   , non inclus dans le standard ASCII  7 bits
 .

 Ce standard, sans accents ni caractres spciaux, correspond aux 128
 (2^7) premiers caractres des 256 (2^8), de 0  255.

 Pour des raisons historiques (place disponible, inutilit pour les tats
 uniens) seuls les 128 (2^7) premiers caractres ont t normaliss par
 l'ASCII : par exemple le A qui est le 65e caractre de la table ASCII
 s'crit 0100 0001 en notation binaire.

 Pour les caractres situs hors de la norme ASCII, diffrentes  normes
 ou  standards  incompatibles, comme l'Unicode, l'iso-8859, le latin,
 le cp (...) fixent ces correspondances.

 Par exemple, dans le standard ASCII tendu par l'iso-8859-1, le 224me
 caractre quivalent not  eb  en hexadcimal correspond    .


 33..22..  LLaa ppoolliiccee ddee ccaarraaccttrreess


 Une police de caractres est une correspondance entre des codes
 informatiques et des caractres (alphanumriques...) affichables par
 l'ordinateur.

 La police de caractres est l'ensemble des reprsentations graphiques
 des caractres d'un standard.


 33..33..  LLeess ppoolliicceess ddee ccaarraaccttrreess


 Il existe plusieurs polices de caractres 8 bits pouvant rpondre au
 besoins des francophones.

 Je vous recommande de lire  ce sujet l'excellent site de Roman
 Czyborra qui a fait une thse sur ce sujet et qui vous donnera une
 explication fort dtaille

 Pour rsumer, il est ncessaire de choisir une police de caractres pour
 que tous les caractres franais soient disponibles.

 Voici la liste des polices dites  ISO 8859 , mais attention, il existe
 leurs quivalents en  code page  pour windows (comme cp1252).
 +o  ISO 8859-1 : latin 1 : langues d'Europe de l'ouest, Afrikaans,
    Swahili.

    Le Swahili, n'utilise aucun caractre accentu (comme l'Anglais, le
    Malais et l'Indonsien), donc n'importe quel version fait l'affaire.

    Pour l'Afrikaans, je ne sais plus exactement quel tait le choix
    initial (c'est--dire o avait t rang le 'n au dpart), mais il ne me
    semble pas que ce soit dans Latin 1.

    Dans la pratique, bien sr, les Afrikaaner utilisent Latin 1 ; la
    mme chose se passe pour un certain nombre des cas qui suivent.

 +o  ISO 8859-2 : latin 2 : langues d'Europe centrale et orientale.

    Dans les faits : Polonais, Tchque, Slovaque, Slovne, Croate,
    Hongrois, Roumain, probablement aussi le Sorbe ou Sorabe (Wende en
    allemand).

    Officiellement, je crois que l'Albanais s'crit aussi en Latin-2,
    mais comme dans les faits c'est identique au Latin 1...  Il y a un
    problme pour le Roumain, car le Latin 2 contient formellement les
    caractres avec une cdille, quand en roumain on utilise une virgule
    souscrite.

 +o  ISO 8859-3 : latin 3 : Espranto et Maltais.

    Initialement, c'tait prvu pour les langues d'Europe du Sud, y
    compris le Turc, les langues d'Espagne (donc Catalan, Basque), le
    Franais.

    Mais dans la pratique, c'est limit  ces deux langues.

 +o  ISO 8859-4 : latin 4 : langues baltes (incomplet).

    Pas utilis dans la pratique, remplac par Latin 7 (iso-8859-13), ou
    plutt en pratique la codepage 1257 Windows.

    Pour l'Este ou Estonien, on peut aussi utiliser Latin 9.

 +o  ISO 8859-9 : latin 5 (comme latin 1, moins l'Islandais, plus le
    Turc).

    Usage : le Turc et peut-tre l'Azri, mais il manque le schwa, un  e
    renvers.

    Codage officiel aux Pays-Bas du fait des Turcs qui y habitent.

 +o  ISO 8859-10 : latin 6 : langues nordiques, sauf le Lapon Skolt.

    Pas utilis dans la pratique : ne servirait que pour les langues
    sames (ou lapones), mais il manque des caractres, et le public
    concern est de toute manire assez limit.

 +o  ISO 8859-11 : Thai.

    Pas encore officiellement adopt.

 +o  ISO 8859-12 : Indien (n'existe pas encore).

    Prvu pour le devanagari, pour crire l'Hindi, la langue principale
    de l'Inde, et aussi un grand nombre d'autres langues indiennes,
    dont le Sanskrit.

 +o  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 rduit en utilisation aux langues
    baltes et  l'Este ou Estonien.

 +o  ISO 8859-14 : latin 8 : langues celtes.

    Pour le Breton, le Galique et les dialectes parles au Pays de
    Galles et en Irlande.

 +o  ISO 8859-15 : latin 9 : comme latin 1, en y comblant quelques
    manques.

    Pour le Franais, le Finnois (en concurrence avec Latin 1) et l'Este
    ou Estonien (en concurrence avec Latin 7).

 De cette longue liste, il convient de ne retenir que :


 +o  ISO 8859-1 latin 1 : police ouest-europenne utilise par la majorit
    des systmes UNIX, elle permet de disposer de tous les caractres
    Franais sauf les  o e lis , l'euro et l'y trma majuscule

 +o  cp850 : quivalent sous DOS de cette police, mais incompatible : il
    faut utiliser un outil de traduction de fichiers tel GNU recode.

 +o  ISO 8859-15 latin 9 : police de l'union europenne, il s'agit d'une
    version rvise de l'ISO 8859-1 latin 1 pour inclure tous les
    caractres des pays europens ; ainsi on y retrouve les caractres
    Franais manquant, l'euro, et des caractres finlandais manquants.

 +o  latin 0 : l'ISO 8859-15 latin 9 est souvent incorrectement abrge en
    latin0, qui correspondait au nom du projet, de par son ambition
    remplacer le latin 1 un jour. Je vous renvoie au site de l'ISO et
    la documentation complte de ce standard

 +o  cp1252 : quivalent sous Windows de cette police, aussi
    incompatible, qui apporte les mmes caractres manquants, du fait
    d'une rvision rcente de cette norme.

 +o  ISO 8859-9 latin 5 : police officielle en Turquie et en Hollande, o
    les caractres Islandais peu utiliss ont t remplacs par les
    caractres turcs.

 +o  cp1254 : quivalent sous Windows de cette police, aussi
    incompatible, qui apporte les caractres manquant au Franais
    prcdemment cits et remplace les caractres Islandais peu utiliss par
    les caractres turcs.

 Les choix de polices de caractres sont souvent des questions ou la
 raison se heurte aux habitudes.

 Pour ma part, si vous hsitez, je vous recommande l'ISO 8859-15 latin
 9, pour diverses raisons :


 +o  Il supporte l'intgralit des caractres utiliss en Franais de manire
    standard sur les UNIX, pour les changes de fichiers entre Solaris
    et Linux par exemple

 +o  Il s'agit de la police 8 bits choisie par l'union europenne si
    l'Unicode, volution du 8 bits, n'est pas disponible


 +o  Il permet d'crire des textes avec l'intgralit des caractres utiliss
    dans l'union

 +o  Il est en train de devenir le nouveau standard dans la messagerie
    lectronique au sens large, supplantant progressivement l'ISO 8859-1
    latin 1

 Le Francophones HOWTO utilise donc le latin 9 dans tous les exemples,
 car il y a de grandes chances que votre systme 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 dcidez
 d'en choisir une autre, je vous recommande d'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 rpandu : dans chaque exemple je vous invite
 alors  remplacer les  latin9  par des  latin1


 33..44..  TTaabbllee ddee ccllaavviieerr


 Une table de clavier est un fichier permettant de faire correspondre
 l'empreinte physique des cabochons,  touches  du clavier, au rsultat
 obtenu sur l'cran de l'ordinateur.

 Pour linux, ces fichiers sont dans /usr/lib/kbd/keytables/ ou
 /usr/share/kbd/keytables/

 Par exemple, les claviers franais AZERTY ont une table de clavier
 diffrente 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 caractres sur le clavier, et
 non son 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.


 33..55..   HHoommee ,,  EEnndd ,,  PPaaggee__UUpp  eett  PPaaggee__DDoowwnn


 Les touches  Home ,  End ,  Page_Up  et  Page_Down  dont les noms
 varient selon les claviers sont les touches permettant respectivement
 d'aller en dbut/fin de ligne et de monter/descendre d'une page.

 Les codes affectes  ces touches sont respectivement 102 et 107 pour
 Home  et  End  en mode terminal.

 Dans les pictogrammes des claviers ISO 9995-7, ces touches sont
 reprsents par des flches aux traits appuys.

 Lorsqu'on presse une touche, le clavier met un code, qui est intercept
 par la table de clavier.

 La table de clavier, si elle reconnait le code, renvoie la chaine
 associe  la touche, en l'occurence "\e[4   pour  End .

 Lorsque bash ou un autre programme reoit cette chaine, il ne la
 connait pas !

 Donc il faut lui dire, dans le .inputrc que "\e[4 " signifie "aller
 la fin de la ligne"


 Donc pour que ces touches fonctionnent dans le shell bash, on ajoutera
 donc dans le fichier .inputrc (dans votre  / ou dans /etc/inputrc) les
 lignes:



      set meta-flag on
      set convert-meta off
      set input-meta on
      set output-meta on
      set bell-style visible

      "\e[1~":beginning-of-line
      "\e[3~":delete-char
      "\e[4~":end-of-line
      "\e\C-h": backward-kill-word
      "\e\e[3~": kill-word




 Les premires lignes permettent d'afficher les caractres 8 bits, et de
 remplacer le  bip  en cas d'erreur par un clair blanc  l'cran.


 33..66..  TToouucchheess mmoorrtteess


 Les touches mortes sont des touches qui ne produisent pas de caractres
 en elles-mmes, mais qui modifient la faon dont la frappe suivante va
 tre interprte, par exemple, le trma ou l'accent circonflexe sont en
 gnral des touches mortes.

 Une touche morte est une touche qui doit donc 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 :



               ^  puis  e  donne
               ^  puis  espace  donne  ^




 Les touches mortes sont :

 +o  be et fr: l'accent aigu en AltGr de 1 pour les Franais et en AltGr
    de  pour les Belges, l'accent grave en AltGr de 7 pour les franais
    & en AltGr de carr/cube pour les Belges, le trma et l'accent
    circonflexe tous deux  ct du P

 +o  sf et usx: les accent aigus, graves, circonflexes, les trmas et la
    tilde

 +o  qc: les accent graves, circonflexes, les trmas et la cdille


 33..77..   BBaacckkSSppaaccee  eett  DDeelleettee


 En raison d'une erreur volontaire et historique sous Linux, pour
 muler  le fonctionnement d'un clavier de console VT, ces 2 touches
 sont frquemments mlanges, au mieux fonctionnant  l'identique, au pire
 ne fonctionnant pas du tout.

 Commenons donc par bien les dfinir :


 +o  BackSpace : touche place en haut  droite du pav principal, au
    dessus d'  Entre , au cabochon marqu d'une flche vers la gauche.

 +o  Delete : touche du pav curseur au cabochon marqu  Suppr  ou  Del ,
    gauche de  Fin  ; en ISO 9995-7 elle correspond  trois barres
    obliques fines orientes sud-ouest/nord-est.

 Le pav numrique offre une touche au marquage identique et  effet
 identique lorsque  Verr Num  ou  Num Lock  est dsactiv.

 Ces deux touches correspondent chacune  un de ces codes :


 +o  BS : caractre ASCII 0x08, ou control-h.

 +o  DEL : caractre ASCII 0x7F, ou control-?

 +o  ^D : caractre ASCII 0x04, ou control-d.

 Ceci dans le but d'effacer  gauche du curseur avec BackSpace,  droite
 du curseur avec Delete.


 33..88..   UUTTCC  eett  GGMMTT


 Chaque partie du monde a sa propre norme horaire, base sur des
 fuseaux.

 La France se trouve en zone MET,  heure moyenne europenne  soit GMT+1
 ; la zone  MET DST  correspond  l'heure d't active soit GMT+2.


 +o  GMT est l'heure solaire moyenne de Greenwich. L'heure est compte
    partir de midi et est donc dcale de 12 h  par rapport au temps
    universel. GMT est base sur la rotation de la terre, ce n'est donc
    pas un temps rgulier. En effet, la vitesse de rotation de la Terre
    subit des variations faibles mais assez chaotiques, en plus elle
    diminue sur le long terme.

 +o  UTC,  temps universel coordonn , est compt  partir de minuit
    toujours par rapport au mridien zro. Il est bas sur des talons
    atomiques, mais des secondes intercalaires sont ajoutes
    occasionnellement pour faire en sorte qu'il ne s'carte jamais de
    plus de une seconde de l'heure solaire moyenne.  Le site de l'opdaf
    et le lexique donnent plus de renseignements.

 C'est le temps UTC, dfini  Paris, qui sert de rfrence aux diffrentes
 heures lgales.

 L'acronyme  GMT  est employ 99% du temps pour dsigner UTC, mais c'est
 une erreur ou un abus de langage.

 Enfin,  titre purement indicatif, il existe l'heure astronomique,
 aussi compte sur des talons atomiques mais dcale de 4 minutes par jour
 de l'heure terrestre car se basant sur la position de la terre dans
 l'espace par rapport aux toiles.


 44..  RRggllaaggee dduu ccllaavviieerr ssoouuss LLiinnuuxx



 44..11..  IInnttrroodduuccttiioonn


 Il existe deux programmes pour configurer votre clavier : un pour la
 console : loadkeys et un pour XFree : xkbd.

 Pour installer un clavier franais sous Linux, tapez selon votre
 clavier une des lignes suivantes :



              loadkeys tables-clavier/fr/fr-latin9.map
              loadkeys tables-clavier/qc/qc-latin1.map
              loadkeys tables-clavier/cn/cn-latin1.map
              loadkeys tables-clavier/be/be-latin9.map
              loadkeys tables-clavier/sf/sf-latin1.map
              loadkeys tables-clavier/usx/usx-latin1.map
              loadkeys tables-clavier/usx/usx-happy-hacking-latin9.map





 44..22..  AAtttteennttiioonn aauu ssttttyy !!


 Avec les tables latin 9 recommandes dans ce HOWTO, pour linux-console
 aussi bien que pour X window, N'UTILISEZ PLUS :



              stty erase ^H




 ou :



              stty erase ^?




  stty erase  ne sert en effet qu' tablir une correspondance entre le
 code que renvoie une touche et la fonction erase pour effacer le
 caractre.

 Les tables ici fournies fonctionnent correctement et ne ncessitent
 donc pas de stty erase qui risquerait surtout de perturber leur bon
 fonctionnement !

 Supprimez-donc ces lignes de vos fichiers d'initialisation de
 l'interprteur de commandes  shell , comme .bashrc, .bash_profile ou
 .tcshrc .


 44..33..  FFaaiirree ddee cceess mmooddiiffiiccaattiioonnss lleess ddffaauuttss aauu ddmmaarrrraaggee


 D'habitude, loadkeys est excut par des scripts au dmarrage ; par
 exemple dans /etc/rc.d/init.d/keytable ou /etc/rc.d/rc.local,
 init.d/keytable ou rc.keymap.


 La commande :



              find /etc/rc.d -type f | xargs grep loadkeys




 vous fournira le nom exact du fichier lanant loadkeys ; il vous suffit
 alors de l'diter pour que vos modifications soient dsormais prise en
 en compte  chaque dmarrage.

 Les distributions RedHat et Debian constituent des exceptions : la
 table de clavier par dfaut tant dfinie dans /etc/sysconfig/keyboard
 pour la RedHat et /etc/kbd/config pour les Debian.

 Remplacer donc dans le fichier propre  votre distribution la table de
 clavier en question par la bonne table comme fr-latin9.map (selon
 votre modle de clavier)

 Vous devrez mettre une copie de la table que vous utilisez dans le
 rpertoire o votre distribution va chercher les tables de clavier ; en
 gnral /usr/lib/kbd/keymaps/i386/azerty/ pour une RedHat et
 /usr/share/kbd/keymaps/i386/azerty/ pour une Debian.

 Allez donc sur tlechargez l'archive, enregistrez-la dans votre
 rpertoire  /, puis dtarrez-la avec la commande:



              tar -xzvf francophones-howto.tgz




 Cela cre un rpertoire  /french : placez-vous dans ce rpertoire puis
 tapez :



              cp tables-clavier/linux-console/fr-latin9.map /usr/lib/kbd/keytables/i386/azerty/




 Pour afficher les caractres latin9, vous devrez excuter les
 instructions de la section  polices de caractre .


 44..44..  PPoolliicceess ddee ccaarraaccttrree


 Si vous utilisez console-tools-1998.08.11.tar.gz, vous pourrez
 remplacer  setfont  par  consolechars  : ces programmes servent
 charger une police sous linux console.



              setfont /usr/lib/kbd/consolefonts/xxxE-NN.psf.gz




 Je vous conseille pour des raisons dveloppes plus bas :

              setfont /usr/lib/kbd/consolefonts/lat9-16u.psf.gz




 Je ne vous conseille pas les fichiers  lat1 , qui ne supportent pas
 l'euro ni les autres caractres franais.

 Vous trouverez aussi des fichiers  .uni  qui ne sont utiles que pour
 crer des polices ou pour ceux qui utilisent l'unicode : ils fixent des
 correspondances entre les  dessins  des caractres dans la police et
 les codes des dits caractres, un mme dessin pouvant correspondre
 plusieurs codes dans l'example de d'unicode.

 Pour les polices toutes faites, vous pouvez forcer cette correspondace
 avec l'option  -u fichier.uni .

 Si vous tenez  les installer, copiez de la mme manire tous les
 fichiers commenant par  lat9  et se terminant par  .uni  dans le
 rpertoire /usr/lib/kbd/consoletrans avec la commande:



          cp lat9*.uni /usr/lib/kbd/consoletrans




 D'habitude, setfont est excut par des scripts au dmarrage ; par
 exemple dans /etc/rc.d/init.d/keytable ou /etc/rc.d/rc.local,
 init.d/keytable ou rc.keymap.

 La commande :



              find /etc/rc.d -type f | xargs grep setfont




 vous fournira sur le nom exact du fichier lanant setfont ; il vous
 suffit alors de l'diter pour que vos modifications soient dsormais
 prise en en compte  chaque dmarrage...

 Les distributions RedHat et Debian constituent des exceptions : la
 police par dfaut tant dfinie dans /etc/sysconfig/i18n pour la RedHat
 et /etc/kbd/config pour les Debian.

 Dans /etc/sysconfig/i18n rajouter une ligne de la forme :



              SYSFONT=xxxE-NN.psf





 +o  xxx reprsente 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 caractres  tendus  comme les voyelles accentus, symboles de
    ponctuation comme paragraphe...

 +o  E reprsente l'encodage latin, par exemple 1 pour latin1, 0 ou 9
    pour latin9
 +o  NNN reprsente la taille individuelle de chaque caractre ; 08 est
    presque illisible mais 16 est un peu gros... A rgler selon les
    gouts de chacun.

 Je vous conseille la police lat9-16u.psf ou son quivalent lat0-16.psf
 installe par dfaut sur la plupart des distributions, trs souvent
 compresse donc avec le suffixe  .gz  .

 [ rajouter une explication sur comment installer la police ]

 La section  une police, des polices  vous donnera plus de dtails sur
 les polices disponibles.


 44..55..  VViieeiilllleess vveerrssiioonnss


 Si lors du chargement de la table de clavier vous rencontrez un
 message d'erreur similaire au suivant :



              (guylhem@victis:guylhem)$ loadkeys fr-latin9.map
              Loading /usr/lib/kbd/keytables/fr-latin9.map
              unknown keysym 'dead_cedilla'
              /usr/lib/kbd/keytables/fr-latin9.map:67: parse error
              syntax error in map file
              key bindings not changed




 Cela signifie que votre version de kbd dont le programme loadkeys
 dpend est trop vieille : il faut vous procurer une version plus rcente
 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 dsutude puisque la grande majorit des programmes
 prennent dsormais en charge ces fameuses touches mortes et les
 caractres accentus.

 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 t prvus :


 44..66..  AAmmlliioorraattiioonnss ssppcciiffiiqquueess aauu ccllaavviieerr ffrraannaaiiss llaattiinn99


 a y est, vous pouvez taper du texte latin 9 sous Linux en mode console
 !

 Seules 2 touches ont t modifies :


 44..66..11..  aa)) ccaarrrr//ccuubbee

 Elle sert maintenant  oe/OE lis ; en AltGr on y trouve les guillemets
 franais.

 Le carr & le cube restent respectivement accessibles en AltGr () et
 Alt Gr(*), les guillemets tant aussi directement accessibles avec
 AltGr (w) et AltGr (x), selon la norme ISO 9995 part 3 applique  la
 norme AZERTY franaise.

 En rsum :

 +o  AltGr (oe) :

 +o  AltGr + Shift (oe) :

 +o  AltGr (w) :

 +o  AltGr (x) :

 +o  AltGr (m) :

 +o  AltGr () :

 +o  AltGr (*) :


 44..66..22..  bb)) ddoollllaarr // lliivvrree // ssyymmbboollee mmoonnttaaiirree iinntteerrnnaattiioonnaall


 tant donn que le symbole montaire international n'est plus disponible
 dans la norme d'encodage ISO 8859-15, il a t remplac par la division
 centsimale de l'euro : le cent, disponible donc en AltGr ($).

 Dans les prcdentes versions, le dollar & la livre, des monnaies
 trangres, avaient t dplacs pour laisser la place  l'euro et au cent,
 notre monnaie.

 De telles modifications taient permises par les recommandations
 officielles de l'EURO WORKSHOP mais allaient  l'encontre de la norme
 AZERTY : si la position AltGr (e) est dj occupe sur un clavier, la
 position de l'euro est laisse au libre choix des programmeurs.

 AltGr (e) sert  faire    depuis 1992 sous Linux, mais devant les
 protestations lgitimes d'utilisateurs disposant d'un clavier o l'euro
 est srigraphi en AltGr (e), j'ai du dplacer le  en AltGr + Shift ($).

 Dsol d'avoir rompu la  tradition  linuxienne pour conserver la
 compatibilit  la norme AZERTY & aux recommandations officielles de
 l'EURO WORKSHOP !

 En rsum :


 +o  AltGr (e) : euro

 +o  AltGr ($) : cent

 +o  AltGr + Shift ($) :


 44..77..  PPoouurr lleess aauuttrreess ccllaavviieerrss llaattiinn99


 L'euro & les cents ont t rajouts respectivement en AltGr (e) & en
 AltGr (c).

 La touche AltGr a donc t rajoute ; pour utiliser ces fonctions avec
 toute table de clavier, il suffit de charger other-latin9.map aprs
 votre table nationale.

 La plupart des amliorations du clavier franais ont t transposes aux
 claviers nationaux par des auteurs externes.

 Toutefois, je ne possde pas chaque modle de clavier et ne peut
 expliquer en dtail toutes ces modifications ; des sections spcifiques
 seront donc rajoutes par la suite par d'autres auteurs.


 44..88..  DDaannss ttoouuss lleess ccaass


  Home ,  End ,  Delete  et  BackSpace  ont t corriges & les touches
 Windows  ont t correctement dfinies, pour passer d'une console
 virtuelle  l'autre.

 Des  Composes , squences  prfixer par la touche compose ( Imprcran  ou
 Print Screen  par dfaut) ont t rajoutes, mais cela reste transparent
 pour l'utilisateur.

 Par exemple:

 +o  COMPOSE ^ suivi d'une des lettres (s,S,z,Z) sert  obtenir les
    lettres finlandaises rajoutes

 +o  COMPOSE " suivi d'une des lettres (y,Y) sert  obtenir les y trmas
    franco-nerlandais rajouts

 +o  COMPOSE - suivi d'une des lettres (e,c,l,y) sert  obtenir l'euro,
    le cent, la livre, le yen


 55..  XXFFrreeee



 55..11..  IInnttrroodduuccttiioonn


 Il y a quelques annes,  xmodmap  servait  changer les tables de
 clavier sous XFree, un fichier de configuration d'ordinaire nomm
 /usr/X11/lib/X11/xinit/.Xmodmap tant pris en charge grce  votre
 .xinitrc ou /etc/X11/xinit/xinitrc

 Pour convertir une table console correcte, on utilisait  mk_modmap
 livr avec l'archive kbd et gnralement install en
 /usr/lib/kbd/keytables

 Les utilisateurs dsirant personnaliser leur table xmodmap employaient
 le programme  xkeycaps .

 Puis XFree 2.1 et les version ultrieures ont reconnu la disposition
 des touches du clavier gre par  loadkeys , rendant thoriquement
 xmodmap inutile.

 Mais la gestion de la touche  COMPOSE  assure par XFree 3.1 laissait
 un peu  dsirer, la table hrite de  loadkeys  ne servant gure.

 Il fallait donc continuer  employer xmodmap, l'utilitaire logiciel
 standard permettant d'obliger le serveur X  associer les vnements
 souris/clavier des caractres.

 Sous XFree version 3.2 et postrieures,  xkb  rendit xmodmap
 dfinitivement obsolte.

 Mais ne voil-t-il pas les rumeurs qui voulaient que les prochaines
 versions de XFree ne supporte plus les touches mortes se sont
 confirmes !!!

 Dans la distribution X11 du X Consortium, donc XFree86, qui en est
 directement issu, il n'existe plus de mcanisme gnral de gestion des
 touches mortes, ou des solutions approximatives obligeant  supprimer
 aussi xkb ou modifier des bibliothques de programmes !


 55..22..  MMaall pprrooggrraammmmeerr


  chaque programme de bien grer les touches mortes au lieu de faire
 confiance  X pour cette tche.

 En ralit, il n'est pas compliqu de grer des touches mortes, il suffit
 d'utiliser la bonne fonction, XmbLookupString() dans les programmes
 Motif, au lieu de XLookupString().


 55..33..  LLee ccllaavviieerr eenn pprraattiiqquuee


 Quelle histoire complique !

 De ce fait, elles ne fonctionnent que pour les clients X
 internationaliss , c'est--dire qui grent eux-mmes les problmes lis aux
 mthodes d'entre de donnes des diffrentes langues nationales.

 Ceci est trs gnant lorsqu'on veut pouvoir saisir du texte comportant
 des lettres accentues, alors que le client utilis n'est pas
 internationalis !


 55..33..11..  aa)) SSoolluuttiioonn uuttiilliissaanntt xxmmooddmmaapp


 Taper :



              cp fr-latin9.xmod /usr/X11R6/lib/X11/xinit/Xmodmap
              cp fr-latin9.xmod ~/.Xmodmap





 55..33..22..  bb)) SSoolluuttiioonn uuttiilliissaanntt xxkkbb ((rreeccoommmmaannddee))


 Taper :



              cp fr-latin9 /usr/X11R6/lib/X11/xkb/symbols




 Puis diter votre XF86Config pour y rajouter dans la section  Keyboard
 les lignes xkb idoines :










 Section "Keyboard"
 Protocol        "Standard"
 AutoRepeat      500 30
 LeftAlt         Meta
 RightAlt        ModeShift               # Important pour Alt-gr, mais dans les
                                         # versions rcentes de XFree, AltGr et
                                         # RightAlt sont synonymes.

 ScrollLock      Compose                 # Pour faire des caractres spciaux.
                                         # Utiliser sinon une des 3 touches des
                                         # nouveaux claviers 105 touches...

 RightCtl        Control                 # Garder la touche normale

 XkbKeycodes     "xfree86"
 XkbRules        "xfree86"
 XkbTypes        "default"
 XkbCompat       "default"
 XkbSymbols      "fr-latin9(pc105)"
 XkbGeometry     "pc(pc105)"
 XkbModel        "pc105"

 EndSection




 Pour cette partie Xkb, certains prfrent :


              XkbKeymap       "xfree86(fr-latin9)"
              XkbKeycodes     "xfree86"
              XkbSymbols      "en_US(pc101)+fr-latin9"
              XkbGeometry     "pc(pc101)"




 Bien sur, remplacer  fr  par  cn ,  be ,  ch  ou  usx  selon votre
 clavier...


 55..33..33..  cc)) SSoolluuttiioonn dduu ccoommppoossee


 Une autre mthode pour obtenir des caractres 8 bits :

 Dans /usr/X11R6/lib/X11/locale/iso8859-1/Compose se trouve une table
 de  correspondance  entre deux caractres et un rsultat ; les deux
 caractres sont mlangs lors de l'appui sur la touche Compose : par
 exemple;


              COMPOSE suivi de  e  puis  ^




 a toutes les chances de vous donner , y compris dans l'ordre oppos ( ^
 puis  e )

 Mais pour utiliser la touche Compose, vous devez l'affecter  une
 touche !

 Le paramtrage prconis, rgl dans XF86Config, la fait correspondre la
 touche  Arrt Dfil  inutile sous X, par la commande :
              ScrollLock       Compose




 dans la section Keyboard.

 Attention, sous Linux en mode console, cette touche est utile (pour
 bloquer temporairement la console virtuelle) et c'est  Impr cran  ou
 Print Screen  qui, ne servant  rien, est affecte   Compose .


 55..33..44..  dd)) SSoolluuttiioonn mmooddiiffiiaanntt llaa lliibbXX1111


 Thomas Quinot <Thomas.Quinot()cuivre.fdn.fr> vous propose donc sa
 libX11 modifie, qui gre les touches mortes de manire transparente pour
 tous les clients.

 Elle permet galement de traiter les squences composes inconnues comme
 des paires de caractres, par exemple :



              ~ + / = ~/




 Pour l'utiliser :

 +o  Rcuprez libX11-XF3.3.1.tar.gz ;

 +o  Extrayez le fichier libX11.so.6.1 ;

 +o  Placez-le dans /usr/X11R6/lib/ ;

 +o  Excutez ldconfig ;

 +o  Dsactivez l'extension XKB en utilisant l'option XkbDisable dans la
    section Keyboard de votre XF86Config.


 55..33..55..  ee)) EEsstt--ccee nncceessssaaiirree ??


 Personnellement, je vous recommande de ne pas toucher  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 rpertoire
 /usr/X11R6/lib/X11/xkb/symbols/ cela signifie que vous n'utilisez pas
 xkb : procurez-vous donc une version plus rcente de X window !

 Sans xkb, XFree se rabattra par dfaut sur votre configuration de
 clavier pour Linux avec loadkeys.

 Toutefois, la translation n'est pas parfaite et je vous recommanderais
 plutt d'viter cette option, aussi bien que l'ancien gestionnaire de
 clavier Xmodmap.

 Il se peut aussi que sans aucune commande pour xkb, XFree vous
 considre comme utilisateur d'un clavier 7 bits !

 Il convient donc d'utiliser une table adapte avec xkb.


 55..44..   llaattiinn99  oouu  llaattiinn11  ??


 Je vous conseille de choisir les tables latin9 que je maintiens jour,
 plus rcentes que les versions latin1, permettant d'utiliser de
 multiples amliorations, dtailles dans la section clavier sous linux-
 console, pour disposer du plus de confort possible et plus adaptes car
 maintenu par des francophones.

 Les nombreuses amliorations dont elles bnficient permettent de pallier
 au dficiences de nombreux programmes.

 Par exemple, certains programmes en Motif comme Netscape (tm) ne
 savent pas encore grer les touches mortes ... donc impossible de taper
 par exemple des  ou des  sur les claviers des Belges et Franais,
 puisque la touche morte  accent circonflexe  est le seul moyen
 d'obtenir ces caractres !

  fr-latin9  rpond  ce problme 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 trma !


 55..55..  TTaabbllee ddee ccoorrrreessppoonnddaanncceess



 +o  AltGr (voyelle) : voyelle accent grave

 +o  AltGr + Shift (voyelle) : voyelle trma

 +o  AltGr (touche au dessous de la voyelle) : voyelle majuscule accent
    grave

 +o  AltGr + Shift (touche au dessous de la voyelle) : voyelle majuscule
    trma

 +o  AltGr + Shift (minuscule accentue) : majuscule accentue

 Par exemple :


 +o  AltGr (a) :

 +o  AltGr (q) :

 +o  AltGr + Shift () :

 L'astuce marche aussi pour le c cdille :


 +o  AltGr + Shift () :

 Donc mme dans les pires conditions, si aucune touche morte ne
 fonctionne, on peut quand mme accder  toutes les voyelles accentues,
 majuscules et minuscules !

 Vous y trouverez en plus les guillemets franais ( ), les symboles
 employs en physique (ss, aa, delta, phi ...), des signes de monnaies
 (yen, cent) ou de copyright (tm, (C)) ainsi que des lettres d'autres
 langues (OE, AE ...).

 Tous ces signes s'obtiennent grce  AltGr (lettre), par exemple AltGr
 (b) donne ss, AltGr (r) donne tm, AltGr (y) donne yen...

 Pour vous rapeller simplement de tout cel, tapez par exemple :



              more /usr/lib/kbd/keytables/i386/azerty/fr-latin9.map




 Pour ce qui est du choix entre latin1 et latin9...  vous de voir !

 Un conseil : essayez l'un puis l'autre si vous avez le temps.


 55..66..  LLeess ppoolliicceess IISSOO 88885599--1155 llaattiinn 99 ssoouuss XX


 Il est bien d'avoir une table de clavier compatible latin 9, mais sans
 police adapte jamais vous ne verrez les caractres rajouts dans cette
 norme.

 Il faut donc utiliser l'utilitaire de conversion  bdftopcf  qui en
 quelque sorte permet de compiler les polices de caractres fournies.

 Placez-vous dans le rpertoire de l'archive que vous avez rcupr puis
 sous root, taper par exemple pour Xlat9-10x20.bdf ou un autre bdf :



              bdftopcf Xlat9-10x20.bdf > Xlat9-10x20-lat9.pcf
              gzip Xlat9-10x20-lat9.pcf
              mv Xlat9-10x20-lat9.pcf.gz /usr/X11R6/lib/X11/fonts/misc
              mkfontdir /usr/X11R6/lib/X11/fonts/misc




 Cel cre un fichier  Xlat9-10x20-lat9.pcf  qu'il faut compresser avec
 gzip, on obtient alors le fichier  Xlat9-10x20-lat9.pcf.gz  qui doit
 tre mis dans le rpertoire adquat, pour lequel l'index des polices de
 caractres sera mis  jour.

 Alors, ajoutez la table de composition latin9 aux compositions par
 dfaut de X, spcifiques  l'iso 8859-1 :



              cat XCompose-lat9 >> /usr/X11R6/lib/X11/locale/iso8859-1/Compose




 Nous faisons un cat vers l'ISO 8859-1, car X ne reconnat pas l'ISO
 8859-15 latin9.

 De l, redmarrer X ou taper sous son compte d'utilisateur normal :



              xset +fp /usr/X11R6/lib/X11/fonts/misc



 Si vous utilisez xmodmap, lancez :



              xmodmap ~/.Xmodmap




 Pour choisir les polices latin9, lancer xfontsel et chercher les
 encodages iso8859-15.

 Ou plus simplement, taper :



              grep Xlat9-10x20.pcf /usr/X11R6/lib/X11/fonts/misc/*




 Puis utiliser le second paramtre comme nom de police, par exemple avec
 rxvt, xiterm, aterm ou wterm:



              aterm -fn -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15




 Cela lance un terminal X utilisant une des polices latin9.


 66..  RRggllaaggee dduu ccllaavviieerr ppoouurr lleess aapppplliiccaattiioonnss eenn mmooddee tteexxttee



 66..11..  TToouutt dd''aabboorrdd


 Le huitime bit doit survivre  l'entre du noyau, assurez-vous-en donc
 avec :



              stty cs8 -istrip -parenb




 Ensuite, il convient de s'assurer que l'application est apte
 supporter les caractres 8 bits : par exemple, ispell n'est pas compil
 pour des caractres 8 bits par dfaut : il faut le recompiler sans
 l'option :



              -NO8BIT







 66..22..  UUnnee ppoolliiccee,, ddeess ppoolliicceess......


 Avant d'aborder cette section, je vous conseille de lire
 l'introduction sur les polices pour apprhender un peu mieux le
 vocabulaire de base et les diffrentes normes de polices.


 66..22..11..  aa)) HHiissttoorriiqquuee ddeess ppoolliicceess


 De l'ASCII  l'Unicode, en passant par l'ISO 8859, le latin et le cp,
 on peut rsumer l'histoire des polices en grandes tapes :

 Au dbut tait l'ASCII, qui codait ses caractres sur 7 bits.

 Prvu pour des tats-uniens, il tait impossible d'incorporer des
 caractres accentus  la norme dj prsente de 127 caractres.

 Ainsi vint le 8 bits qui tendit le nombre de caractres  255 et les
 normes ISO 8859, latin et cp, pour les plus connues, qui vinrent
 pallier  cette dficience du fait des 128 positions supplmentaires
 disponibles en encodant les caractres sur 8 bits.

 Mais plusieurs de ces normes taient ncessaire du fait de
 l'impossibilit de faire tenir les caractres de toutes les langues du
 monde sur 8 bits.

 La norme ISO 8859-1 latin 1, la plus utilise, se destine par exemple
 au langues d'Europe de l'ouest, du nord, d'Amrique, la norme ISO
 8859-2 latin 2 est prvue pour l'Europe de l'est...

 L'Unicode est l'un de ces standard, destin  terme  remplacer les
 diffrentes volutions de l'ASCII ; comme le passage du 7 bits au 8 bits
 il correspond  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 du parc install.

 L'Unicode offre l'avantage de proposer les caractres ncessaires toutes
 les langues du monde, mais reste encore peu utilis ou implment.

 En effet, il est impossible de l'utiliser en pratique sous linux-
 console, la mmoire exige de la carte vido ne permettant pas de stocker
 tous les caractres de l'Unicode, et sous X la gestion actuelle des
 polices rendrait son utilisation trop inconfortable.

 Attendons un peu que les polices  True Type  se rpandent sous X, grce
 des outils comme freetype, xfstt (...) et le trs attendu XFree 4 qui
 devrait les supporter en natif.

 Actuellement, la nouvelle norme europenne ISO 8859-15 latin 9 est
 cense permettre la transition vers l'Unicode en apportant  l'ancien
 ISO 8859-1 latin 1 les caractres qu'il manquait actuellement.

 Toutefois elle est partiellement incompatible avec l'Unicode puisque
 l'ISO 8859-1 latin 1 avait t choisi comme base pour l'Unicode, mais
 que cette police veut complter les failles de l'ISO 8859-1 latin 1 en
 y rajoutant des caractres dj prsents dans l'Unicode...

 Quelle complexit pour de simple lettres !


 66..22..22..  bb)) IISSOO 88885599--1155 llaattiinn 99



 De nous jours, il vaut mieux installer par dfaut la nouvelle norme ISO
 8859-15 latin 9, destine  remplacer l'ensemble des polices europennes
 par une seule.

 Son but est voisin de l'Unicode, mais elle a l'avantage d'tre plus
 lgre que celui-ci et d'tre applicable tout de suite.

 Elle apporte notamment des caractres qui manquaient beaucoup pour les
 Franais et les Finlandais :


 +o   e dans l'o  en majuscule et minuscule pour les Franais, par
    exemple pour les mots oeuf, coeur, boeuf, oeil ...

 +o   s chapeau invers  en majuscule et minuscule pour les Finlandais

 +o   z chapeau invers  en majuscule et minuscule pour les Finlandais

 +o   l'EURO  pour tous les pays europens

 Cette nouvelle norme, ISO 8859-15 latin 9 aussi connue sous le nom
 gnrique latin0, reste cependant encore trs peu rpandue par rapport  la
 norme actuelle ISO 8859-1 latin 1.


 66..22..33..  cc)) UUttiilliisseerr lleess ppoolliicceess IISSOO 88885599--1155 llaattiinn 99


 Vous n'avez besoin que d'une seule police !

 Or il en existe plusieurs types rpondant diffremment  la mme norme
 iso-8859-15 latin9  latin0  sous linux :

 +o  par tradition l'opposition latN/latNu selon l'inclusion ou non
    d'une table de correspondance Unicode.

 +o  en ralit les diffrences vont bien plus loin, de l'ordre dans lequel
    sont les caractres de la police, ce qui joue sur l'aspect des
    applications semi graphique, les correspondances avec des caractres
    latin1  latin9  Unicode ce qui a un rle dans la compatibilit croise
    ou exclusive, par exemple purement Unicode...

 J'ai donc complt par 2 types de ma cration pour rpondre au mieux aux
 diffrents besoins.



            | Encodage dans | Inclusion d'une | Compatibilit | Compatibilit
            |  l'ordre iso  |  table Unicode  |   exclusive   |    croise
      --------------------------------------------------------------------------
      lat9  |     oui       |      non        |     non       |   lat1 + lat9
      --------------------------------------------------------------------------
      lat9u |     non       |      oui        |     non       |   lat1 + lat9
      --------------------------------------------------------------------------
      lat9v |     oui       |      oui        |   Unicode     |       non
      --------------------------------------------------------------------------
      lat9w |     oui       |      oui        |     non       |lat1+lat9+Unicode
      --------------------------------------------------------------------------




 Voici plus d'explications :



 +o  les lat9 tout court ne contiennent pas de table de correspondance
    Unicode, ce qui fait que tous les symboles montaires internationaux
    apparatront comme des euro, ce qui peut poser des problmes pour les
    fichiers issus d'un ordinateur sous windows ; le cp1252 ou le
    latin1 sont  incompatibles  avec le latin9, mais ce dernier a
    l'avantage de fonctionner tout de suite sous linux.

    Dans les versions rcentes du noyau, selon le site de Yann Dirson,
    il semble donc que toutes les polices devraient contenir une table
    de correspondance Unicode...

 +o  des lat9u encodes dans un ordre non standard, mais identique celui
    des polices latXu de kbd, par rapport aux polices prcdentes, en
    amenant les mmes problmes avec le cp1252 et le latin1 mais en
    incluant une table de correspondance Unicode, ce qui permet d'avoir
    de jolis caractres semi graphiques sous Yast, mc, ou d'autres
    programmes bass sur ncurses ou dialog.

 +o  des lat9v encodes dans l'ordre officiel iso comme les lat9 mais
    avec une table Unicode complte : l aucun symbole montaire
    international ne sera remplac par l'euro !  Ces polices sont utiles
    pour viter les problmes d'export, grce l'Unicode *pur*, avec une
    table de clavier Unicode adapte : tous les caractres latin9 sont
    remplacs par des caractres Unicodes et affichs ainsi, ce qui a le
    mrite d'tre compatible avec le latin9, l'Unicode, d'tre lgant
    techniquement mais inutilisable  normalement  sous linux-console.
    Presque aucun systme n'est entirement prt pour l'Unicode !

 Donc n'utilisez les polices lat9, lat9u ou lat9v que si vous savez ce
 que vous faites, je vous recommande pour ma part le meilleur compromis
 : les polices lat9w qui permettent de passer au latin9 immdiatement,
 en posant quelques problmes pour les caractres latin1 qui seront
 remplacs par leurs quivalents latin9, mais sans rendre l'Unicode
 obligatoire comme les lat9U, sans emmler les caractres graphiques
 comme les lat9, et en permettant aussi d'afficher les caractres
 spcifiques au latin9 en Unicode *pur*,  l'exception des caractres
 spcifiques au latin1 donc...

 Je vous rassure, vous n'tes pas obligs de comprendre tout ce qui suit
 pour  passer  l'euro , si effectivement vous ne savez toujours pas de
 quelle police vous avez besoin, un conseil : utiliser les lat9w.

 Pour utiliser la police lat9-16.psf ou un autre lat9 .psf, vous devez
 pallier l'absence d'une table Unicode en en chargeant une.



                      loadunimap fonts/linux-console/lat9.uni
                      setfont fonts/linux-console/lat9-16.psf




 Pour utiliser la police lat9w-16.psf ou une autre lat9u, lat9v ou
 lat9w :



                      setfont /fonts/linux-console/lat9w-16.psf







 66..22..44..  dd)) UUnniiccooddee


 Une alternative est l'Unicode, mais les programmes l'utilisant sont
 encore trop peu nombreux pour qu'elle soit valable.

 Citons quand mme yuedit et le projet  9  (9term, 9wm... rien  voir
 avec l'oprateur tlcom franais du mme nom) qui utilisent l'Unicode sous
 X, avec plus ou moins de succs.

 En revanche, sous linux-console, tout programme peut utiliser
 l'Unicode.

 Mais, hlas!, aussi grande que soit la mmoire des cartes vidos
 actuelles, elle ne peut charger l'intgralit des caractres d'une police
 Unicode.

 Il existe donc des  jeux de caractres  limits mais bien utiles pour
 les langues baltiques, asiatiques, est-africaines...


 66..22..55..  ee)) UUttiilliisseerr lleess ppoossssiibbiilliittss UUnniiccooddee


 Essayez par exemple ce fichier unicode-lance pour passer en mode
 Unicode:



      #!/bin/sh
      echo -e '\033%8'
      kbd_mode -u
      loadkeys fr-unicode.map
      setfont lat9u-16.psf




 et ce fichier latin-retourne pour revenir en mode latin normal:



      #!/bin/sh
      echo -e '\033%@'
      kbd_mode -a
      loadkeys fr-latin9.map
      setfont lat9w-16.psf




 Essayez par exemple de lire le fichier unicode.txt, encod en Unicode,
 une fois unicode-lance activ.

 Vous ne verrez sinon qu'un texte mal encod, sans caractres 8 bits,
 comme cet exemple :










 Ceci est un essai de texte en UNICODE !

 On constate que les btas (~_) et autres lettres 8 bits ne sortent pas bien
 si l'on regarde ce fichier en mode latin !
 Les accents |  non plus d'ailleurs...
 Enfin, heureusement que l'on ne marche pas sur des ~RUFS, enfin, ~Sufs !
 ~Ga marche moyennement disons !





 66..33..  LLeess llooccaalleess,, mmeessssaaggeess eenn FFrraannaaiiss


 Linux en 'version franaise' existe... mais ne semble pas facile
 obtenir.

 La librairie locale(7) [cf aussi perllocale, setlocale, getlocale]
 utilise par la librairie C se sert de variables d'environnement pour
 dfinir les prfrences linguistiques et nationales.

 Pablo Saratxaga rpondait ainsi  Pascal Rigaux en prenant l'exemple de
 sort :










































  PR> J'ai dcouvert aujourd'hui la variable d'environnement LANG. C'est assez
  PR> surprenant de se retrouver avec de l'aide en franais (mme si elle n'est pas
  PR> toujours aussi prcise que la version anglaise) quand on fait ls --help.

 C'est agrable 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  tre  aprs  zen ). Il devrait au moins proposer une option de
  PR> ce genre.

 Il faudrait regarder les sources de sort...
 La fonction  utiliser est strcoll() :

                                   ****

 STRCOLL(3)         Manuel du programmeur Linux         STRCOLL(3)


 NOM
        strcoll - Comparaison de deux chanes 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 chanes s1  et  s2.
        Elle renvoie un entier infrieur, gal ou suprieur a zro
        si  s1 est respectivement infrieure, gale, ou suprieure
        a  s2.   La  comparaison est effectue en se basant sur la
        localisation en cours pour la catgorie LC_COLLATE.  (Voir
        setlocale(3)).

                                   ****

 qui est donc l'quivalent de strcmp() mais qui tiens compte des locales.
 Il faudra s'crire un strcasecoll() aussi pour bien faire, en utilisant
 toupper()/tolower() qui d'aprs la page de manuel supporte les locales.

 Qui s'y colle ? a devrait tre assez simple  raliser sur un systme GNU
 en tout cas.




 Il existe diffrente variables  exporter, avec chacune une fonction
 spcifique ; le format standardis est:



              langue[_PAYS[.CHARSET]][@variante]




 Les crochets dnotent l'optionalit, par exemple: 'fr', 'fr_BE',

 Les fonctions de la libc, celle de GNU en tout cas, iront chercher
 dans  l'ordre dcroissant  si on peut dire; par exemple si on spcifie
 avec 'fr_CH' puis avec 'fr'.



 +o  LC_COLLATE  dfinit les quivalences de caractres pour les
    comparaisons (ae peut tre quivalent  ae), pour les ligatures et
    pour les csures.

 +o  LC_CTYPE    dfinit les caractres affichables

 +o  LC_MONETARY dfinit le format et le symbole de la monnaie utilise

 +o  LC_NUMERIC  dfinit le format numrique : regroupement, marqueur
    dcimal...

 +o  LC_MESSAGES dfinit la langue des messages

 +o  LC_TIME     dfinit le format de la date, les noms des jours et des
    mois

 +o  LC_ALL      valeur par dfaut des variables prcdentes : si une LC_
    n'est pas dfinie, LC_ALL est prise en compte, sinon la libc se
    rabat sur LANG.

 +o  LANG        diffrent des variables prcdentes, contient le code
    langue au format iso : fr,en,de...

 +o  LANGUAGE    liste des locales par ordre de prfrence spares par deux
    points (fr:es:dk:en), c'est une particularit GNU, fort utile si un
    document n'existe que dans une langue comme certaines pages de
    manuel

 Les valeurs utilisables pour les francophones sont:


 +o  fr franais gnrique

 +o  fr_FR franais de France

 +o  fr_BE franais de Belgique

 +o  fr_CH franais de Suisse

 +o  fr_LU franais du Luxembourg

 +o  fr_CA franais du Canada

 Par exemple, si vous tre un Franais de France, il suffit d'indiquer
 sous bash :



              export LANGUAGE=fr_FR




 Exemple :












         bash# export LANGUAGE=es_ES
         bash# ls fichier_n_existant_pas
         ls: fichier_n_existant_pas: No existe el fichero o el directorio
         bash# export LANGUAGE=de_DE
         bash# ls fichier_n_existant_pas
         ls: fichier_n_existant_pas: Datei oder Verzeichnis nicht gefunden
         bash# export LANGUAGE=en_US
         bash# ls fichier_n_existant_pas
         ls: fichier_n_existant_pas: No such file or directory
         bash# export LANGUAGE=fr_FR
         bash# ls fichier_n_existant_pas
         ls: fichier_n_existant_pas: Aucun fichier ou rpertoire de ce type




 Toutefois, avec le passage  l'euro, ces locales ne sont plus adaptes.

 Je vous conseille donc d'utiliser dans les pays de l'union passant
 l'euro le suffixe  @euro  :



         export LC_ALL="fr_FR@euro"




 Pour cela, installer les nouveaux fichiers sources de locales dans
 /usr/share/i18n/ en lanant :



         cp charmaps/ISO-8859-15 /usr/share/i18n/charmaps/ISO-8859-15
         cp locales/* /usr/share/i18n/locales/




 Alors, rgnrer les locales  binaires  de /usr/share/locales, par
 exemple :



         localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro




 fr_FR@euro inclus les caractres 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 Franais (FRF) est toujours la monnaie
 officielle en France par exemple, mais lorsque ce sera l'euro, il
 suffira de remplacer la locale fr_FR par fr_FR@euro.



         cd /usr/lib/locales
         rm -fr fr_FR
         mv fr_FR@euro fr_FR




 La solution  @euro  est supporte par les autres UNIX comme Solaris.

 Pour les shell scripts, il peut tre utile de rajouter  LC_TIME=C  pour
 empcher la date d'tre localis, embtant pour les grep et autres qui
 cherchent  Mon   Tue ... et non  Lun ,  Mar ...

 Les donnes correspondantes aux prfrences se trouvent gnralement dans
 /usr/share/locale. S'ils manquent, vous pouvez rcuprer leur source

 Concernant les autres fichiers abords dans cet article, vous les
 trouverez avec les autres fichiers de cet HOWTO sur ma page.


 66..44..  SSoonn lliinnuuxx eenn ffrraannaaiiss


 Pour se faire SON linux en franais il faut en pratique disposer des
 sources de la libc et d'un minimum de comptences en langage C ; ces
 manipulations sont inutiles pour l'utilisateur standard de Linux qui
 se contentera d'utiliser les locales de la section prcdente.

 Mais voici donc, pour la bonne bouche, quelques renseignements
 collects...

 Laurent Chemla nous pilote :



      Si j'ai suivi, il y a deux trucs qui font la mme chose, d'o embrouille, les
      locales et un truc appel nls.

      Les locales, sous Linux, a va par dfaut dans /usr/lib/locale,
      et a contient de quoi prciser 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 dtails. 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
      a, et de fait, nls gre un fichier qui est dans /etc/locale/.
      (NDG : De nos jours, ils se trouvent plutt dans /usr/lib/locale)
      D'o l'embrouille. Ils auraient mis a dans /usr/lib/nls, comme
      tout le monde, a aurait vite la confusion. Mais bon.

      Donc, si l'on veut se tenir  jour d'nls, il suffit d'aller dans les
      sources de libc/nls, faire  make french  et copier libc.dat dans
      /etc/locale/C/libc.dat et toc, tous les messages sont en franais. 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
      rgles franaises, l il faut aller dans les sources de
      libc/locale et dans chacun des sous-rpertoires jeter un oeil sur le
      fichier exemple, le modifier pour le franais (c'est des tout petits
      fichiers), et faire  make , avant de copier le rsultat dans
      /usr/lib/local/fr/ et de faire un  export LC_ALL=fr .




 Autre astuce pour mnager les vieux logiciels :



      cd /usr/lib
      ln -sf /usr/share/locale .

 Ne pas oublier de tlcharger sur le site du lip6 :


 +o  Les pages de manuel en franais, archive man-fr-*, adaptes par C.
    Blaess. Il suffit d'extraire le contenu de l'archive dans le
    rpertoire /usr/man/fr.

 +o  Une intressante documentation technique : locale.fr, par P.
    D'Cruze, adapte par . Dumas

 Pour en apprendre davantage lire la page de manuel de  locale  :
 bibliothque de pages de manuel 5 ou 7 :



              bash# man 5 locale
              bash# man 7 locale





 66..55..  LLeess vvaarriiaabblleess


 Ces variables doivent tre exportes  chaque login : mettez les donc
 dans .bashrc et .bash_login, .tcshrc ou /etc/profile :



      # pour tcsh, utiliser setenv au lieu de export, par exemple setenv LANG fr

      # 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
      # caractres 8 bits ...
      alias q="cd .."
      alias ll="ls --color=auto -a -N -l"
      alias d="ls --color=auto -a -N"
      alias indent="indent -kr"
      alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"

      # Au cas o Del/BackSpace ne fonctionne pas, essayez l'un des deux :
      #stty erase ^?
      #stty erase ^H




 N'oubliez pas : tous les fichiers ici cits dont le nom commence par  .
 doivent se trouver dans votre rpertoire maison  /


 66..66..  LLeess ccaarraaccttrreess 88 bbiittss ddaannss lleess pprrooggrraammmmeess uuttiilliissaanntt rreeaaddlliinnee tteellss
 bbaasshh oouu nnccffttpp......


 Readline est une librairie de saisie de caractres avec historique et
 compltion ; elle est utilise par de nombreux programmes comme bash,
 ncftp, gnuplot...

 Par dfaut, le 8e bit sert  coder la touche Meta.

 Elle est utilise pour coder certaines commandes mais la touche  Escape
 ou  chap  peut la remplacer.

 Si vous souhaitez voir et saisir des accents avec les applications
 compiles avec readline, comme bash pour les versions suprieures 1.13,
 ajoutez ceci dans votre fichier $INPUTRC, par dfaut ~/.inputrc) :



      # Permettre de rentrer & recevoir des caractres accentus
      set meta-flag on
      set convert-meta off
      set input-meta on
      set output-meta on

      # Pas de bip audible mais visible
      # set bell-style visible

      # Pour faire marcher Home, End, Delete, Esc + Delete & Esc + BackSpace
      "\e[1~":beginning-of-line
      "\e[3~":delete-char
      "\e[4~":end-of-line
      "\e\C-h": backward-kill-word
      "\e\e[3~": kill-word




 Cela vous permettra d'effacer des caractres vers l'avant avec  Delete
 et vers l'arrire avec  BackSpace , ceci n'tant pas prvu sur les tables
 de clavier par dfaut  mimant  le comportement d'un clavier de console
 VT100 .

 Les deux dernires options vous permettront d'utiliser  Home  et  End
 pour aller au dbut et  la fin de la ligne en cours d'dition.

 Pour pouvoir employer une touche il suffit d'obtenir son code et
 l'associer  une fonction grce  ce fichier ; pour obtenir le code d'une
 touche invoquer cat puis appuyer sur la touche : son code apparat.

 Le code physique :



              ^[




 correspond  la squence d'chappement.

 Par exemple, si le code de  Home  est  ^[[7   il suffit d'ajouter une
 ligne :



              "\e[7~": beginning-of-line





 au .inputrc.

 Plus de documentation est disponible sur la page de manuel de bash,
 section READLINE.

 On peut aussi, grce  la variable d'environnement INPUTRC, utiliser un
 fichier commun  tous les utilisateurs.

 Enfin, je vous recommande d'utiliser ce fichier .bashrc  placer dans
 votre rpertoire maison :



      # ~/.bashrc : excut par bash(1) pour les shells lancs aprs 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 cration de fichiers
      #umask 022




 Le fichier .bash_profile ou .bash_login, excut par bash(1) lors des
 logins, y est strictement identique mais peut, si vous le voulez,
 prsenter des diffrences pour afficher par exemple une citation en
 laant le programme  fortune .




 66..77..  zzsshh

 Celui-ci devrait se contenter d'un stty pass8.

 Si cela ne suffisait pas, rajouter dans le .zshrc ou dans /etc/zshrc:



              bindkey "\e[2~"  yank
              bindkey "\e[3~"  delete-char
              bindkey "\e[1~"  beginning-of-line
              bindkey "\e[4~"  end-of-line
              bindkey "\e[5~"  up-line-or-history
              bindkey "\e[6~"  down-line-or-history






 66..88..  ttccsshh


 Pour tcsh, placer, dans le fichier /etc/csh.login ou dans les fichiers
 .tcshrc des utilisateurs concerns, les variables indiques plus haut en
 remplaant export par setenv:



              setenv LC_CTYPE=ISO-8859-1
              setenv LANGUAGE=fr
              setenv LC_MESSAGES=fr
              setenv LC_ALL=fr
              setenv LANG=fr
              setenv LESSCHARSET=latin1





 66..99..  PPoouurr ttoouuss lleess sshheellllss


 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...

 A propos de LANG, il vaut mieux viter fr_FR et lui prfrer fr car
 certains programmes ne passent pas vraiment par la resolution de
 locales mais lisent LANG directement...

 Si nls est install, les routines correspondantes sont utilises, sinon
 tcsh agit en iso_8859_1, quelle que soit les valeurs donnes  LANG et
 LC_CTYPE : cf. la section NATIVE LANGUAGE SYSTEM de tcsh(1).

 Selon le Danish-HOWTO, utiliser :



              (guylhem@victis:tcsh)# setenv LC_CTYPE ISO-8859-1
              (guylhem@victis:tcsh)# stty pass8






 66..1100..  LL''hheeuurree


 Rien n'est plus facile que de laisser  Linux le soin de passer de
 l'heure d't  l'heure d'hiver et rciproquement...

 a) D'abord, quelle heure est-il :-) ?

 Aprs avoir regard sur la pendule la plus proche de vous, tapez :

 clock

 puis

 date

 La premire heure est celle du bios, la seconde celle calcule par Linux
 partir de /etc/zoneconfig.

 Pour peu que vous ayez install timezone, votre machine peut jongler
 aisment entre les diffrents fuseaux horaires... ce que les DOS ou
 Windows ne permettent pas !

 b) L'heure du choix !

 De l, deux possibilites : soit vous dcidez de laisser l'heure systme
 l'heure locale, peu pratique, except si vous hbergez aussi sur votre
 disque dur ces systmes d'exploitation peu volu, ne sachant mme pas
 exploiter les fuseaux horaires, soit vous passez  l'heure de
 Greenwich, Linux se chargeant de l'adapter  votre fuseau horaire.

 Dans ce cas, les grands voyages  l'tranger avec un portable tout neuf
 quip de Linux se feront en toute simplicit : le dernier paragraphe
 vous expliquera comment changer de fuseau horaire facilement...

 c) Le rglage

 Pour procder, regardez d'abord si l'heure systme retourne par clock
 est l'heure locale ou l'heure de Greenwich.

 Vous avez bien regard 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  l'tape  rglage du
 fuseau .


 +o  Pour les franais, belges wallons et suisses romands :

 Vous tes normalement dans une zone horaire MET (Medium European Time,
 soit GMT+1).

 La zone  MET DST  correspond elle  l'heure d't active (GMT + 2).

 Selon les dcisions futures de la cour europenne, l'heure d't  daylight
 savings  risque d'tre abandonn...  ce qui compliquera cette
 explication !


 +o  Pour les canadiens franais :

 Vous tes dans une zone horaire GMT-4 si vous habitez autour de Montral
 .


 Pour les autres provinces, consulter un dictionnaire !

 Premirement, 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 tre un lien vers /etc/localtime).

 Ds lors, clock et date doivent vous retourner la mme heure...


 +o  Pour les canadiens franais : utilisez GMT+4


 +o  Pour les franais, belges wallons et suisses romands :

 Si vous lisez ce document en t, le dcalage de l'heure locale par
 rapport  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  2  par des  1  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
 rgler le systme : tapez :

 ln -sf /usr/lib/zoneinfo/Etc/GMT-2 /etc/zoneconfig

 clock

 date

 L'heure calcule correspond donc  l'heure de Greenwich, l'heure systme
 l'heure locale... soit l'inverse de ce que l'on veut.

 Un simple : clock -w

 Va alors mettre l'heure du systme en heure de Greenwich, utilisant
 pour cela l'heure locale inverse volontairement avec l'heure systme.

 d) Rgler le fuseau horaire :

 Tapez alors : ln -sf /usr/lib/zoneinfo/Europe/Votre-ville
 /etc/zoneconfig

 Et voil ! Le systme est  l'heure de Greenwich, la conversion vers le
 fuseau horaire local et l'heure d't se faisant automatiquement.

 Si vous habitez hors Europe, procdez de mme en remplaant les  -2  par
 X , X reprsentant l'oppos de votre dcalage horaire (par exemple -4 au
 Qubec, donc X=+4...)

 e) Modifier le fuseau horaire :

 Si vous partez  l'tranger, il est alors simple de modifier l'heure
 locale de votre portable : par exemple si vous partez pour Moscou :

 ln -sf /usr/lib/zoneinfo/Europe/Moscow /etc/zoneconfig

 Trs simple et trs utile : plus besoin de se souvenir du dcalage
 horaire (plus ou moins X heures) puisque Linux se charge dsormais de
 tout !




 66..1111..  vvii


 Normalement, aucune modification n'est ncessaire  part l'utilisation
 de loadkeys (dtaille plus haut).

 Ce fichier .vimrc pourrait toutefois vous tre utile si vous utilisez
 vim au lieu d'elvis :


























































 " Les guillemets anglais  "  signifient  mis en commentaire

 " viter un avertissement  version incorrecte  :
 version 4.0

 " Utiliser les dfauts de vim, bien mieux
 set nocompatible

 " Autoriser le  BackSpace  sur tout :
 set bs=2

 " Police  utiliser sous X11 :
 "set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

 " Fixer la csure automatique de la ligne  N caractres :
 set tw=72

 " Faire apparatre les tabulations et les espaces
 set list

 " Changer les dfauts pour voir les espaces inutiles et les tabulations
 set listchars=tab:,trail:
 hi nontext ctermfg=red
 hi nontext ctermbg=blue

 " Indentation (pour les programmeurs) :
 " set cindent

 " Rglages 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 aprs
 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  l'intrieur 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'dition de fichiers gzipps

 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





 66..1122..  EEmmaaccss


 Voici un fichier de configuration de base pour employer les accents.







   ;;
   ;; Fichier .emacs: initialisation d'emacs
   ;; Tir du Guide du Rootard
   ;;

   (display-time)                     ;; Pour avoir l'heure dans la barre d'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++ mme 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 varis  mettre ici
   (global-set-key "\eg" 'goto-line)       ;; ESC G = Aller  une ligne

   (put 'eval-expression 'disabled nil)

   ;; Accents...
   (standard-display-european 1)
   (load-library "iso-syntax")
   (set-input-mode (car (current-input-mode))
                 (nth 1 (current-input-mode))
                 0)

   ;; Sous X-Window, texte en couleurs (C/C++/Shell/Makefile,etc)
   (cond (window-system
   (setq hilit-mode-enable-list  '(not text-mode)
   hilit-background-mode   'light
   hilit-inhibit-hooks     nil
   hilit-inhibit-rebinding nil)
   (require 'hilit19)
   ))
   (if (not (equal window-system ""))
   (global-set-key "\C-?" 'delete-char))
   ))




 Le Keyboard-HOWTO conseille quand  lui :



           (standard-display-european t)
           (set-input-mode nil nil 1)
           (require 'iso-syntax)
           (load-library "iso-insert.el")
           (define-key global-map [?\C-.] 8859-1-map)




 Utilisez une version au moins gale  19.27, modifiez le fichier global
 (commun  tous les utilisateurs) /usr/lib/emacs/site-lisp/site-start.el
 ou le ./emacs de chaque utilisateur concern pour y ajouter :



              (standard-display-european t)
              (set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)
              (global-set-key [delete]   'delete-char)
              (global-set-key [home]     'beginning-of-line)
              (global-set-key [end]      'end-of-line)
              (global-set-key [prior]    'scroll-down)
              (global-set-key [next]     'scroll-up)
              (global-set-key [C-right]  'forward-word)
              (global-set-key [C-left]   'backward-word)
              (global-set-key [C-prior]  'beginning-of-buffer)
              (global-set-key [C-next]   'end-of-buffer)
              (global-set-key "\033[A"  'previous-line)
              (global-set-key "\033[B"  'next-line)
              (global-set-key "\033[C"  'forward-char)
              (global-set-key "\033[D"  'backward-char)
              (global-set-key "\033[H"  'beginning-of-line)
              (global-set-key "\033[Y"  'end-of-line)
              (global-set-key "\033[1~" 'beginning-of-line)
              (global-set-key "\033[2~" 'overwrite-mode)
              ;; le delete-char peut correspondre  \004 ou  \033[3~
              (global-set-key "\033[3~" 'delete-char)
              (global-set-key "\033[4~" 'end-of-line)
              (global-set-key "\033[5~" 'scroll-down)
              (global-set-key "\033[6~" 'scroll-up)




 Pour les autres versions :


 +o  19.19 :



              (standard-display-european 1)
              (set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)





 Lire  ce propos le fichier emacs.info.

 +o  19.22 :


         (load-library "iso-transl")
         (standard-display-european t)





 +o  Autres :



              (standard-display-european 1)
              (load-library "iso-transl")




 XEmacs les accepte lui par dfaut sans broncher mais peut des fois
 rencontrer des problmes avec les BackSpaces dans le mini-buffer en
 console.

 Ajouter dans le .emacs :


      (if (eq window-system 'x)
          (global-set-key (read-kbd-macro "DEL") 'delete-char)
        (or (global-set-key "^[[3~" 'delete-char))
      )




 Le mode ispell d'emacs a un certain nombre de dictionnaires prdfinis
 qui ne sont pas forcement ceux qui sont en place sur le systme.

 Si vous constatez des problmes, vous devez redfinir la liste ispell-
 dictionary-alist des dictionnaires.

 Cette liste contient :

 +o  le nom du dictionnaire

 +o  la liste des caractres composant un mot

 +o  la lise oppose des caractres ne composant pas un mot

 +o  les caractres de liaison  l'intrieur des mots ("-", "'"...)

 +o  vrai ou faux si ces caractres peuvent tre prsents en plusieurs
    exemplaire dans le mot

 +o  une liste d'arguments pour ispell

 +o  le mode d'ispell (tex, nroff..)

 Par exemple, dans le fichier .emacs :










 (setq ispell-dictionary-alist
  '((nil  ; francais.aff
   "[A-Za-z--]" "[^A-Za-z--]"
   "[---']" 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" ; franais
   "[A-Za-z--]" "[^A-Za-z--]"
   "[---']" nil ("-n") "~nroff")
  ("francais-TeX" ; franais
   "[A-Za-z--\\]" "[^A-Za-z--\\]"
   "[---'^`\"]" t nil "~tex")
  ("espanol" ; espa~nol.aff
   "[A-Za-z]" "[^A-Za-z]"
   "[---'^`\"]" t nil "~nroff")
  ("dansk" ; danois et norvgien
   "[A-Za-z]" "[^A-Za-z]"
   "[---'^`\"]" t nil "~nroff")
  ))




 Le dictionnaire "francais-TeX" est un lien symbolique sur "francais"
 qui permet d'ajouter une entre pour les accents  la TeX (ex: \'e).

 Si vous utilisez X11, vous voudrez peut-tre reconstruire les menus et
 il vous faudra recharger une partie de lisp/loaddefs.el dans votre
 .emacs :



































 (setq ispell-menu-map nil)

   (if ispell-menu-map-needed
   (let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist)))
     name)
     ;; Can put in defvar when external defines are removed.
     (setq ispell-menu-map (make-sparse-keymap "Spell"))
     (while dicts
   (setq name (car (car dicts))
     dicts (cdr dicts))
   (if (stringp name)
   (define-key ispell-menu-map (vector (intern name))
     (cons (concat "Select " (capitalize name))
   (list 'lambda () '(interactive)
     (list 'ispell-change-dictionary name))))))))

   (if ispell-menu-map-needed
   (progn
     ;; Define commands in opposite order you want them to appear in menu.
     (define-key ispell-menu-map [ispell-change-dictionary]
   '("Change Dictionary" . ispell-change-dictionary))
     (define-key ispell-menu-map [ispell-kill-ispell]
   '("Kill Process" . ispell-kill-ispell))
     (define-key ispell-menu-map [ispell-pdict-save]
   '("Save Dictionary" . (lambda () (interactive) (ispell-pdict-save t))))
     (define-key ispell-menu-map [ispell-complete-word]
   '("Complete Word" . ispell-complete-word))
     (define-key ispell-menu-map [ispell-complete-word-interior-frag]
   '("Complete Word Frag" . ispell-complete-word-interior-frag))
     (define-key ispell-menu-map [ispell-continue]
   '("Continue Check" . ispell-continue))
     (define-key ispell-menu-map [ispell-region]
   '("Check Region" . ispell-region))
     (define-key ispell-menu-map [ispell-word]
   '("Check Word" . ispell-word))
     (define-key ispell-menu-map [ispell-buffer]
   '("Check Buffer" . ispell-buffer))
     (define-key ispell-menu-map [ispell-message]
   '("Check Message" . ispell-message))
     (define-key ispell-menu-map [ispell-help]
   '("Help" . (lambda () (interactive) (describe-function 'ispell-help))))
     (put 'ispell-region 'menu-enable 'mark-active)))

   (fset 'ispell-menu-map (symbol-value 'ispell-menu-map))





 66..1133..  lleessss


 /etc/profile ou les fichiers de dmarrage du shell (comme .bashrc et
 .bash_profile dans votre rpertoire maison) doivent contenir :



      export LESSCHARSET=latin1




 Comme fichier .lessrc je vous recommande :



 \e[B    forw-line
 \e[A    back-line
 \e[6~   forw-scroll
 \e[5~   back-scroll
 \e[1~   goto-line
 \e[4~   goto-end
 \e[C    next-file
 \e[D    prev-file
 \eOA    back-line
 \eOB    forw-line




 Pour rentrer un Esc (parfois nomm chap) taper  \e  ou, sous vi, mettez
 vous en mode insertion avec i puis tapez  ctrl+v  et enfin  Esc .

 Ce fichier permet d'utiliser les touches  Home ,  End ,  Page_Up  &
 Page_Down .

 Pour s'en servir, taper :



      lesskey -o .less .lessrc




 N'oubliez pas de mettre le fichier .less dans votre rpertoire maison :
 il permet d'employer les touches flches,  Page_Up ,  Page_Down ,  Home
 et  End .

 Ne pas ngliger la page de manuel de less car il peut tre intressant de
 changer la valeur de sa variable d'environnement de configuration
 ("LESS").

 J'utilise : '-C -M -i -x2'


 66..1144..  llss


 Utilisez les options :



      -N --color=auto




 ou, plus simplement, dfinissez dans les fichiers de dmarrage de votre
 shell les alias suivants permettant de voir les fichiers dont le nom
 comprend des caractres 8 bits :



      alias ll="ls --color=auto -N -l -a"
      alias d="ls --color=auto -N"




 Un simple d remplacera le classique ls, en y ajoutant la couleur,
 alors que ll vous offrira une liste complte de tous les fichiers
 prsents dans le rpertoire, avec leurs attributs, leurs tailles...

 --color=auto est prfrable 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.


 66..1155..  fflleexx


 Donnez l'option :



      -8




 si l'analyseur gnr doit accepter les entres 8-bits (bien sr qu'il doit
 le faire !).


 66..1166..  eellmm


 Rajoutez ces trois lignes dans votre .elm/elmrc :



        charset = iso-8859-1
        displaycharset = iso-8859-1
        textencoding = 8bit





 66..1177..  ccooll


 Assurez-vous :

 1) qu'il a t corrig et fasse un



      setlocale(LC_CTYPE,"");




 2) de dfinir



      LC_CTYPE=ISO-8859-1




 dans l'environment.




 66..1188..  rrllooggiinn


 Utilisez l'option :



      -8





 66..1199..  jjooee


 Utiliser joe 2.8 ou plus rcent qui devraient fonctionner aprs dition
 du fichier de configuration : placer l'option -asis dans
 /usr/lib/joerc en premire colonne.


 66..2200..  TTeeXX eett LLaaTTeeXX


 Le plus simple consiste  employer GuTemberg, une distribution de LaTeX
 avec tous les dfauts rgls pour des francophones par des francophones !

 Mais si vous prfrez une version standard non modifie, il suffit
 d'ajouter au dbut de chaque fichier :


 +o  Pour LaTeX:



      \documentstyle[isolatin]{article}





 +o  Pour LaTeX2e:



      \documentclass[12pt,a4paper]{letter}
      \usepackage{isolatin1}
      \usepackage[french]{babel}
      \usepackage{t1enc}





 ou alors :



      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}




 Au cas o votre distribution soit trop vieille pour l'inclure,
 isolatin.sty est disponible sparment
 Pour gs et xdvi, il faut utiliser des options spciales (sur ma
 machine, ce sont des alias). En effet, ils sont souvent configurs pour
 un papier tats-unien dit  lgal , de taille proche, mais non exactement
 gale,  celle du standard  A4 .

 Ces options sont les suivantes :

 gs -sPAPERSIZE=a4 xdvi -paper a4 ghostview -a4

 Pour que dvips convertisse les documents dans un format papier a4, il
 faut spcifier dans le fichier config.ps (le chemin varie en  fonction
 des versions de LaTeX) : /usr/lib/texmf/dvips/config.ps ou .dvipsrc

 @ a4 210mm 297mm @+ ! %%DocumentPaperSizes: a4 @+ %%PaperSize: a4 @+
 %%BeginPaperSize: a4 @+ a4

 Sinon ajoutez  votre .Xresources :



      XDvi.paper:             a4
      Ghostview.pageMedia:    A4





 66..2211..  MMaannuueell


 Tout d'abord, il faut vous procurer les pages de manuel Linux
 traduites en franais

 Si vous utilisez une distribution RedHat ou Debian, celles-ci sont
 prsentes sur le cdrom : il suffit de les slectionner lors de
 l'installation.

 De l, deux possibilits :


 +o  soit vous ne voulez que des manuels en Franais, auquel cas il faut
    faire un :



      export MANPATH=/usr/man/fr_FR





 NB: fr_FR se remplace par fr_BE, fr_CA, fr_CH ou fr_LU selon le pays
 concern.

 +o  soit vous prfrez par dfaut des manuels en Franais et si la page
    n'existe pas, vous vous rabattez vers l'Anglais, il suffira alors
    de taper :



      export LANG=fr





 man ira chercher dans le  MANPATH  des pages en  LANG  par dfaut et se
 rabattra sinon sur des pages en anglais.

 Si vous dsirez installer la page de manuel expliquant la norme ISO
 8859-15 latin 9, il faut installer le fichier iso_8859_15.7.gz :



      cp standard/iso_8859_15.7.gz /usr/local/man/man7/





 66..2222..  CCoorrrreecctteeuurr oorrtthhooggrraapphhiiqquuee iissppeellll


 Vous pouvez vous le procurer sur le site original d'Hydro Qubec ou sur
 le mirroir du lip6

 Un fichier LISEZMOI explique pas  pas et en Franais l'installation.


 66..2233..  LLeess ccllaavviieerrss 110055 ttoouucchheess


 Aussi appels  claviers Microsoft (tm) , ils ont trois touches de plus
 que les claviers normaux.

 Comment s'en servir ?

 En mode console, diter french.map et dcommenter les lignes en parlant
 !

 De mme pour french (pour Xwindow).


 66..2244..  PPGGPP



 Attention, dans certains pays totalitaires, l'utilisation de logiciels
 de cryptographie est considre comme usage d'armes de guerre, ce qui
 est punissable par la loi !

 Sautez donc ce paragraphe si votre lgislation locale ne permet pas
 d'utiliser des logiciels de cryptographie.

 Premirement, il faut se procurer pgp-international ( cause de problmes
 de patentes et de lgislation sur l'export d'armes de guerre, il existe
 pgp-us et pgp-international, ce dernire tant dot d'un algorithme
 encore plus puissant) sur le site norvgien de PGP

 Ensuite, mettre dans votre rpertoire maison, dans un sous rpertoire
 .pgp les fichiers :











 config.txt
 language.idx
 pgpdoc1.txt
 pgpdoc2.txt
 language.txt
 fr.hlp
 en.hlp
 pgp.hlp




 Enfin, diter le fichier .pgp/config.txt pour y rajouter :



      Language = fr
      CharSet = latin1




 Lisez ensuite .pgp/fr.hlp pour apprendre  vous servir de pgp !


 66..2255..  IImmpprreessssiioonn eenn mmooddee aasscciiii


 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 en latin1, on doit utiliser  recode latin1:ibmpc
 ( placer dans les filtres lpr de /etc/ par exemple), sous peine de
 voir imprimer des  alpha   la place de   , et autres choses du mme
 genre.

 Il existe d'autres utilisation au programme recode :  ibmpc:lat1  ou
 lat1:ibmpc  (de ou vers MS-DOS) ou  applemac  pour Macintosh (tm).


 66..2266..  UUnniiccooddee//llaattiinn//ccpp...... jjee nn''aaii ppaass ccoommpprriiss ccee ddeerrnniieerr ppaarraaggrraapphhee !!


 Voici donc plus d'explications grce  Pablo Sartxaga (srtxg
 chanae.alphanet.ch) dans un message explicant la diffrence
 Unicode/latin/cp :




















  DB>   quand on lance  setfont  sans argument
  DB>   il semble qu'on obtienne le mme effet que setfont -u none

 Normal et logique.

  DB>   --> en un mot la table de conversion  Unicode  est dsactive
  DB>       ce qui transforme le  e accent aig (dec 130)  en  thta (dec 233)

 Non. Il ne transforme rien du tout, il affiche tout simplement sans
 *aucune* transformation au contraire,  toi de t'assurer que la police
 que tu charges possdes les glyphes  la bonne place par rapport au codage
 de caractres que tu utilises (iso-8859-1).

 Autrement dit si ta police n'est pas iso-8859-1 tu dois dire  setfont de
 faire des mappings; en particulier s ic'est une police qui utilise l'encodage
 DOS cp437 tu fais  setfont -u cp437 nomdelapolice . Moi par exemple j'aime
 beaucoup la police  t.fnt  de la Slackware, et j'ai donc quelque part
 dans /etc/rc.d/* une ligne  setfont -u cp437 t.fnt

 Ou alors tu modifies la police (il y a un logiciel qui fait cela avec
 interface svgalib, et un autre nomm  chedit  qui permet de crer des
 images an ascii-art, un fichier par caractre (256 fichiers donc), il te
 suffit alors de jongler avec les fichiers pour les changer de place et
 rgnerer la police).  Note cependant que le codage cp437 n'inclut pas
 tous les caractres de iso-8859-1, notamment manquent quasi toutes les
 majuscules accentues, et les lettres  ncessaires en portugais. Tu
 peux toujours modifier la police pour crer ces caractres manquants.

  DB>   sur ma Slackware 3.2,  aucun moment setfont n'apparat dans les scripts
  DB>   de dmarrage ni dans les ~/profiles et autres ~/.bashrc

 Donc c'est la police dans la ROM de la carte video qui est utilise.

  DB>   et pourtant cette
  DB>   conversion est effectue correctement puisque j'ai les accents  l'cran.

 Je suppose que le kernel prsuppose ( juste titre) que la police en ROM vido
 est au codage cp437.

  DB>        une fois que je lance  setfont -u none  je perds donc les accents.

 Normal, car ds lors que tu charges une police tu est suppos 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 dfaut de setfont 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 dfaut est  straight to font , pas de
 conversion.

  DB>            j'en conclue que Linux utilise la police rsidente par dfaut de
  DB>            la carte EGA/VGA

  DB>        [Q] --> comment retrouver cette police ?

 Il y a un programme nomm  restoretextmode  qui est assez populaire
 auprs 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  echo -e \033(B  (l'ennuyant
 c'est que tu dois le faire dans chaque console)

  DB>                 (en gnral setfont -u def.uni (par exemple) renvoie une
  DB>                  erreur : PIO_UNIMAPCLR: Invalid argument et je reste
  DB>                  en caracteres  graphiques )

 Ah ? Chez moi a marche; quels kernel et kbd as-tu ?

 Sinon je te conseille  cp437  plutt que  def , ils font _presque_ la mme
 chose, mais  cp437  est visuellement plus agrable car il remplace les
 caractres non prsents dans la police par les lettres non accentues si c'est
 des lettres, C pour  et R pour  et par un carr blanc pour le reste, ce qui
 permet de garder le formatage et la lecture agrables;  def  lui ne mets
 totu simplement rien pour les caractres manquants, si bien que tu te
 trouves avec des trous, ce qui est l'horreur si tu dites un texte par
 exemple avec vi, puisque le curseur est affich plusieurs caractres
  gauche  cause des caractres de largeur nulle :)

 Essaye aussi la police  t.fnt , elle est assez jolie, toute en rondeurs, je la
 trouve rposante, et quand je dois utiliser un PC avec les polices style
 courier par dfaut je trouve a trs agressif je me demande comment ils
 peuvent travailler avec :)




 Lire aussi les articles de news :  FAQ - les accents franais et Usenet
 de F.  Yergeau dans les groupes fr.usenet.reponses et fr.usenet.8bits
 ISO 8859-1 National Character Set FAQ de mike () vlsivie.tuwien.ac.at
 dans comp.answers .


 66..2277..  nnccuurrsseess


 Rappelons que ncurses est un librairie C qui permet de manipuler
 facilement l'affichage en mode console texte : fentrage, lignes de
 saisie, dition de formulaires, couleurs, caractres  ALT  ascii semi-
 graphique ibm, comme sous dos...


 66..2277..11..  IInnttrroodduuccttiioonn


 La version standard de curses utilise le huitime bit pour la vido
 inverse (voir le flag _STANDOUT dfini dans /usr/include/curses.h).
 Cependant, ncurses semble fonctionner en 8-bits et affiche le iso-
 latin-8859-1 correctement.


 66..2277..22..  LLeess aacccceennttss


 Remarque: les distributions de Linux sont livres en gnral avec la
 version 1.9.9e de ncurses, or il se trouve que la librairie form de
 cette version est BUGGE (problmes de rafrachissement des fentres).

 Ne pas utiliser la 1.9.9e donc si on veut travailler avec  form  : ce
 bug est d'ailleurs clairement nonc sur le site de ncurses, et je
 m'tonne que ce soit justement cette version qui soit encore livre sur
 la plupart des distributions (RedHat 4.2, 5.0, 5.1, Slackware 3.2,
 Debian 1.9) en tout cas.


 Symptme : la fonction  wgetch() de ncurses renvoie les codes suivants
 :


 +o  je tape '' et wgetch retourne   meta-i     code 233 (decimal)

 +o  "  "   '' "    "        "      meta-h     code 234 (decimal)

 +o  etc

 C'est normal avec les polices iso-8859-1 !

 Il faut installer les  locales  ou mettre  jour sa version de ncurses.


 66..2288..  PPeerrll


 Si tout d'un coup aprs une mise  jour il raconte :



      (guylhem@victis:guylhem)$ perl
      perl: warning: Setting locale failed for the categories:
              LC_CTYPE LC_COLLATE
      perl: warning: Please check that your locale settings:
              LC_ALL = "fr_FR",
              LC_CTYPE = "ISO-8859-1",
              LC_COLLATE = (unset),
              LANG = "fr"
          are supported and installed on your system.
      perl: warning: Falling back to the "C" locale.
      (guylhem@victis:guylhem)$




 En libc6 le format des fichiers binaires de dfinition des locales a
 (encore) chang : il faut les rgnrer  partir des sources sources
 WG15collection.tar.gz par exemple et des programmes locale  et
 localedef  qui sont fournis dans les sources de la libc.

 Sinon on peut galement se passer des locales :



           unset LANG
           unset LC_CTYPE
           unset LC_COLLATE
           export LC_ALL=fr_FR.ISO-8859-1





 66..2299..  IInnssttaalllleerr lleess llooccaalleess


 Les  locales  sont des fichiers qui vont modifier le comportement de
 certains programmes pour qu'ils s'adaptent aux  spcificits culturelles
 du pays .

 Cela sert  rsoudre les erreurs rapportes par perl ou une mauvaise
 gestion des accents par ncurses.


 +o  rcuprer pour la libc5 la collection de locales POSIX

 +o  ou pour la libc6, elle est dans l'ajout  glibc-localedata

 +o  copier dans le rpertoire /usr/share/locale les fichiers fr_FR et
    en_DK (qui est inclus dans fr_FR)

 +o  crer le rpertoire /usr/share/i18n/charmap et copier le fichier
    ISO_8859-1:1987

 +o  faire man localedef et lancer la commande :



                localedef -f ISO_8859-1:1987 -i fr_FR fr





 Ceci crera l'entre fr dans /usr/share/locale soit :



              /usr/share/locale/fr





 Ce rpertoire devrait maintenant contenir les fichiers :



               LC_COLLATE
               LC_CTYPE
               LC_MESSAGES
               LC_MONETARY
               LC_NUMERIC
               LC_TIME





 +o  lire le fichier  locale.fr  que l'on peut trouver sur le serveur
    ftp.lip6.fr (chercher sous doc, linux...) et dont la traduction
    franaise a t faite par Eric DUMAS (hlas ce doc ne traite
    principalement que de LC_MESSAGES.  quand la suite ric ? ;-) )

 +o  complter ventuellement l'initialisation des variables du shell
    comme dcrit dans la section sur bash ou tcsh

 +o  dans un programme, utilisez la fonction  setlocale() (man
    setlocale.3) pour fixer les paramtres locaux CAR le noyau linux
    initialise toujours cette fonction avec l'argument une locale  C
    (POSIX) donc sans accents !



                setlocale(LC_CTYPE,"fr_FR");





 +o  a y est ! Les accents sont disponibles dans ncurses.


 66..2299..11..  MMiiddnniigghhtt CCoommmmaannddeerr ((mmcc))


 En changeant de police, il peut arriver que les lignes de cadre soient
 remplaces par divers caractres.

 2 possibilites :

 +o  La police charge ne dispose pas de caractres dits  semi graphiques
    , qui permettent de dessiner des cadres

 +o  Il y a discordance entre la police et sa table de mappage

 Pour le premier cas, la seule solution est de changer de police, mais
 dans le second cas, il suffit en gnral de charger la table avec
 loadunimap par exemple :



                loadunimap lat1u.uni
                loadunimap lat5u.uni
                loadunimap lat9u.uni





 66..3300..  KKeerrnneell


 Pour mettre un support pour le clavier franais directement dans le
 kernel, ce qui est pratique pour les systmes embarqus ou ne dmarrant
 que sur disquettes, afin de gagner le maximum de place :



      /usr/bin/loadkeys loadkeys --mktable votre-table-de-clavier.map > /usr/src/linux/drivers/char/defkeymap.c





 66..3311..  LLiilloo


 Depuis la version 20, on peut spcifier un clavier (franais, par
 exemple) au dmarrage de LILO.

 Bien sur, cela ne fait qu'changer quelques touches (a/q,m/:,... pour
 un clavier fr) mais cela est assez utile lorsque l'on veut taper  win
 .

 Je vous conseille toutefois de ne pas faire de label utilisant des
 touches qui diffrent 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, remplaant fort avantageusement les
 lignes de lilo par un magnifique menu graphique dans le cas de GAG.




 66..3322..  GGrrooffff ((mmaann))


 Sur certaines distributions, le programme man n'est pas configur pour
 afficher les accents.

 Si vous rencontrez ce problme, ditez son fichier de configuration
 (/etc/man.config sur les distributions actuelles) et localisez une
 ligne ressemblant  cela :



      NROFF           /usr/bin/groff -Tascii -mandoc




 Remplacez-l par :



      NROFF           /usr/bin/groff -Tlatin1 -mandoc




 Les vieilles versions de man utilisent aussi col, et le point suivant
 s'applique aussi.


 66..3333..  DDiivveerrss


 Une belle discussion sur le thme de l'ISO-8859-1 et sur  comment
 manipuler les caractres 8-bits  est disponible


 77..  RRggllaaggee dduu ccllaavviieerr ppoouurr lleess aapppplliiccaattiioonnss XX

 77..11..  LLeess xxtteerrmmiinnaauuxx ((xxtteerrmm,, nnxxtteerrmm,, rrxxvvtt......))


 Les faire fonctionner avec toutes les touches standard du clavier 102
 touches relve du miracle, quant aux accents, seule une recompilation
 vous permettra de les utiliser !

 Pour xterm, essayez de mettre dans votre .Xdefaults :



















 XTerm*eightBitInput: true
 XTerm*eightBitOutput: true
 *customization: -color
 XTerm*VT100*Translations: #override\n\
 XTerm*pointerColor: red
 None<Key>Begin: string(0x1b) string("[1~")\n\
 None<Key>End: string(0x1b) string("[4~")\n\
 None<Key>Prior: scroll-back(1,halfpage)\n\
 None<Key>Next: scroll-forw(1,halfpage)\n\
 Shift<Key>Prior: scroll-back(1,page)\n\
 Shift<Key>Next: scroll-forw(1,page)
 XTerm*fontMenu*fontdefault*Label: Default
 XTerm*VT100*font: 9x15
 XTerm*fontMenu*font1*Label: Illisible
 XTerm*VT100*font1: nil2
 XTerm*fontMenu*font2*Label: Minuscule
 XTerm*VT100*font2: 5x7
 XTerm*fontMenu*font3*Label: Petit
 XTerm*VT100*font3: 6x10
 XTerm*fontMenu*font4*Label: Normal
 XTerm*VT100*font4: fixed
 XTerm*fontMenu*font5*Label: Moyen
 XTerm*VT100*font5: 7x13
 XTerm*fontMenu*font6*Label: Tres grand
 XTerm*VT100*font6: 10x20




 Dans .inputrc :



      # pour rxvt
      "\e[7~":beginning-of-line
      "\e[8~":end-of-line
      # pour xterm
      "\e[H": beginning-of-line
      "\e[F": end-of-line




 Mais ces deux solutions ne vous garantissent pas de rsoudre tous les
 problmes de rxvt et de xterm ...

 Pour les rsoudre sans crer de fichiers dans /usr/X11R6/lib/X11/app-
 defaults, je tiens sinon  votre disposition un xiterm, un terminal X
 supportant *TOUTES* les touches des claviers standard, avec Home, End,
 Page_Up (...) et mme le pav numrique, fonctionnant comme en mode
 console, i.e.  Shift-Page_Up permettant de faire dfiler une page,
 voire mieux : le pav numrique reconnaissant enfin la diffrence entre
 Verr. Num allum et Verr. Num teint.

 X international terminal (xiterm pour les intimes) est bien sr sous
 GPL et mis  jour pour suivre paralllement l'volution de rxvt.

 Sur par exemple  mon site vous trouverez donc xiterm, qui remplace
 votre xterm classique en y apportant la couleurs, les accents et les
 touches tendues.

 Pour l'installer, compilez-le, devenez root et tapez :




 rm /usr/X11R6/bin/xterm
 rm /usr/X11R6/lib/X11/app-defaults/xterm
 rm /usr/X11R6/lib/X11/app-defaults/rxvt
 rm /usr/X11R6/lib/X11/app-defaults/Xterm
 rm /usr/X11R6/lib/X11/app-defaults/XTerm
 rm /usr/X11R6/lib/X11/app-defaults/Rxvt
 rm /usr/X11R6/lib/X11/app-defaults/RXvt
 cp xiterm /usr/local/bin

 ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/xterm
 ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/rxvt





 77..22..  LLeess aapppplliiccaattiioonnss MMoottiiff


 L, je n'ai malheureusement aucun remde miracle !

 Il faudrait modifier le code source, code indiqu plus haut, pour
 remplacer XLookupString par XmLookupString.

 Utilisez les possibilits du fichier french au lieu des touches mortes
 (AltGr (voyelle) : voyelle accent circonflexe... ) !


 77..33..  LLee mmaannuueell


 Pablo Saratxaga tient  votre disposition un xman modifi pour qu'il
 supporte la variable  LANG  et puisse afficher les pages en d'autres
 langues qu'anglais.

 Il est disponible sur le lip6 en sources ou en binaires


 77..44..  NNuummLLoocckk


 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...


 77..55..  XXDDMM


 /etc/X11/xdm/Xresources sert  ne rencontrer aucun problme avec les
 touches  spciales  (Home, End ...) sous X.












 xlogin*login.translations: #override\
       Ctrl<Key>R: abort-display() \n\
       <Key>BackSpace: delete-previous-character() \n\
       <Key>Home: move-to-begining() \n\
       <Key>Delete: delete-character() \n\
       <Key>End: move-to-end() \n\
       <Key>Left: move-backward-character() \n\
       <Key>Return: set-session-argument() finish-field() \n\
       <Key>Right: move-forward-character()





 88..  RReemmeerrcciieemmeennttss


 Ce document ne serait pas ce qu'il est sans l'aide de Nat Makarvitch
 (nat  nataa.fr.eu.org) qui l'a relu et m'a aid  le modifier de
 nombreuses fois.

 Un excellent document plus gnrique, traitant de l'installation par ex,
 est le Guide du Rootard, disponible sur freenix ou le lip6

 Remercions enfin par ordre alphabtique ces contributeurs :

 Jean-Michel Antoine
 Michel Billaud
 Chmouel Boudjnah
 Stephane Bortzmeyer
 Denis Braussen
 Rmy Card
 Julien Cassaigne
 Xavier Cazin
 Laurent Chemla
 Ren Cougnenc
 Bruno Cornec
 Yann Dirson
 Eric Dubreuil
 Eric Dumas
 Arnaud Gomes-do-Vale
 Pierre Ficheux
 Laurent Frigault
 Hugolino
 Antoine Leca
 Frederic Lepied
 Jeannot Langlois
 Stephane Marzloff
 Marc Merlin
 Thomas Parmelan
 Frdric Petit
 Thomas Quinot
 David Robert
 Olivier Robert
 Benjamin Ryzman
 Pablo Saratxaga
 Julien Simon
 Loc Tortay
 J.M. Vansteene



 Surtout, si je vous oublie, signalez-le moi !  De mme si vous ne
 voulez plus figurer dans cette liste...


 Envoyez moi vos suggestions et modifications (guylhem  oeil.qc.ca), je
 me ferai un plaisir de les intgrer dans les prochaines versions !

 Signalez-moi aussi les erreurs : cet HOWTO est en perptuel changement,
 avec des nouveauts incluses  chaque version ; des erreurs peuvent
 facilement s'y glisser !