Space Menu Home Downloads Goodies Newbie Area Documentation Knowledge Base E-Training Forum Blogs RPM Farm Linux Events
HistoryHistory |



Script pour convertir man français d'UTF8 à Latin1

Ce script permet d'afficher correctement les lettres accentuées. Sa mise en oeuvre ne nécessite pas de connaissances en matière de scripts. Bien que conçu pour man il devrait être facilement adaptable à d'autres fichiers pour qui connaît les rudiments de l'écriture de scripts.

Vous trouverez en attachement joint à cette page un script de JacquesF du forum du Mandriva Club (adapté à partir d'un script originel de peric) qui permet de convertir les pages de 'man' en français en Latin1 afin d'éviter l'affichage de caractères "bizarres".

La problème auquel ce script remédie se posait dans le cadre de la Mandriva 2006 et ne se pose plus pour la 2007, qui est passée entièrement en UTF8. Ce script reste intéressant cependant en tant qu'exemple de script de conversion qui peut toujours être adapté à d'autres contextes.

  • 1. Cliquez sur le lien ci-dessus : une fenêtre contenant le texte du script devrait s'afficher.
  • 2. Sélectionnez le texte du script et placez-le dans le presse-papier : pour cela positionner le curseur de la souris dans la fenêtre, puis faire Ctrl+A puis Ctrl+C.
  • 3. Ouvrez une console graphique : clic sur le Menu principal (l'étoile jaune) puis choisir 'Système/Terminaux' et ensuite 'Konsole' (sous KDE) ou 'Gnome Terminal' (sous GNOME).
  • 4. Placez-vous dans le répertoire où vous souhaitez enregistrer le script en tapant en console "cd rep" (sans les guillemets et en remplaçant 'rep' par le vrai nom du répertoire en question), puis pressez la touche ENTREE.
Note : Ce pourra être par exemple un répertoire où vous mettrez tous vos scripts personnels et que vous pourrez rajouter ensuite à votre variable $PATH, disons, par exemple, "/home/toto/bin" si votre nom d'utilisateur est "toto", répertoire que vous pourrez créer par un "mkdir /home/toto/bin", pour vous y rendre vous taperez dans ce cas "cd /home/toto/bin" puis ENTREE.
  • 5. Choisissez le nom que vous donnerez au script (disons "convman" pour fixer les idées mais vous êtes libre de choisir un autre nom) et tapez en console "cat > convman" (comme d'habitude sans les guillemets), puis pressez la touche ENTREE.
  • 6. Allez dans le menu 'Edition' de votre console et choisissez 'Coller'. Le texte du script devrait s'afficher sur la console, vérifiez-le. Si c'est le cas tapez les touches Ctrl-d
  • 7. A ce stade le fichier de script "convman" devrait avoir été créé, vérifiez-le en tapant "ls" (son nom devrait apparaître dans la liste) et il devrait contenir le texte du script, vérifiez-le en tapant "cat convman" qui devrait afficher le texte du script.
  • 8. Taper "chmod a+x convman" (sans les guillemets et en remplaçant éventuellement 'convman' par le nom que vous avez donné au script s'il est différent) et tapez ENTREE, tout ceci pour rendre le script exécutable.
  • 9. Taper "./convman" et ENTREE pour exécuter le script (en remplaçant, évidemment 'convman' par le véritable nom du script s'il est différent).
  • 10. Si tout s'est bien passé, votre man modifié se trouve maintenant dans /tmp/man.
  • 11. Sauvegardons l'ancien man, par prudence, dans un répertoire ad hoc, par exemple "~/ManVieux" (autrement dit "/home/toto/ManVieux"). Pour cela, si ce répertoire n'existe pas encore, nous pouvons le créer et y copier les fichiers de man en une seule commande : "cp -a /usr/share/man/fr ~/ManVieux"
    L'option '-a'
    L'option 'a' est "conservatrice" et compacte : elle permet la copie - dite "récursive" - de sous-répertoires et de leur contenu - comme le ferait l'option 'R', elle conserve l'ensemble des propriétés des fichiers copiés - comme le ferait l'option 'p' et enfin, comme le ferait l'option 'd', elle copie les liens symboliques comme tels et non le répertoire vers lequel ils pointent.
  • 12. Remplaçons maintenant l'ancien man par le nouveau :
    "cp -fR /tmp/man/* /usr/share/man/fr"
Vérifiez si man est maintenant bien lisible : examinez-en quelques pages en tapant en console "man ls", "man chmod", "man cp" etc.

Note : Si des messages du script ont signalé des erreurs de conversion vous devriez trouver la liste des fichiers concernés en lisant le fichier $Err. Recopiez alors ces fichiers dans man à partir de la sauvegarde que vous avez faite en 11.
=============

N.B Tout ceci suppose que votre 'man' en français se trouve dans le répertoire "/usr/share/man/fr", ce qui est en général le cas. Si néanmoins votre man français se trouve ailleurs, vous pouvez en 9 rajouter le chemin de man en français sur votre système comme argument de la commande qui lance le script (vous lancerez donc dans ce cas : "./nom_du_script chemin_de_man_en_français").

=============

Pour être certain de ne rien perdre... Pour être certain de ne pas perdre les pages de "man" que le script n'a pu convertir, vous pouvez lancer la commande suivante (je suppose que la sauvegarde que vous avez faite en 11. est dans votre répertoire "~/ManVieux" et que votre "man" est installé dans "/usr/share/man/fr") :
cp -ai --reply=no ~/ManVieux/* /usr/share/man/fr
N'oubliez pas l'astérisque à la fin du premier argument !
La combinaison 'i --reply=no' est cruciale pour nous : lorsqu'un fichier du répertoire source aura le même nom qu'un fichier du répertoire destination ce dernier fichier ne sera pas remplacé (ou "écrasé", comme on dit aussi...) : ainsi seuls seront copiés dans '/usr/share/man/fr' les fichiers de la sauvegarde qui sont actuellement absents de ce répertoire, c'est-à-dire ceux qui n'ont pas pu être convertis par le script. Et vous serez donc certain de n'avoir rien perdu dans l'opération.
 
Attachments: 1 Attachments by ptyxs ...
 
 

RSS
Script pour convertir man français d'UTF8 à Latin1 (fr)
Creator: ptyxs  Date: 2006/01/07 07:32
Last Author: ptyxs  Date: 2007/01/02 16:08
Copyright (c) 2006 Mandriva