Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Système] Man et UTF-8 (~ résolu)
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 3:48 pm    Post subject: [Système] Man et UTF-8 (~ résolu) Reply with quote

Bonjour,

J'ai un problème avec l'affiche des pages man françaises. En effet, les caractères accentués ont du mal à s'afficher. Je suis en full UTF-8 et voici la conf de mes fichiers :

/etc/conf.d/consolefont
Code:

CONSOLEFONT="lat9w-16"
CONSOLETRANSLATION="8859-15_to_uni"


/etc/conf.d/keymaps
Code:
KEYMAP="fr-latin9"
DUMPKEYS_CHARSET="iso-8859-15"


/etc/rc.conf
Code:
UNICODE="yes"


Si dans /etc/man.conf je met la ligne :
Code:
NROFF           /usr/bin/nroff -Tlatin1 -mandoc -c

Alors, la sortie du man ressemble à ceci :
http://img156.imageshack.us/my.php?image=200703101645521085x724swk3.png

En revanche, si dans /etc/man.conf je met la ligne :
Code:
NROFF           /usr/bin/nroff -mandoc -c

Alors, la sortie du man ressemble à ceci :
http://img265.imageshack.us/my.php?image=200703101648411085x724ssx9.png

Par conséquent, l'option -Tlatin1 permet l'affichage de certains caractères accentués, mais pas tous (comme le 'à'). Quelqu'un a une idée de ce qui ne va pas ?

Merci d'avance ;)


Last edited by _kal_ on Sat Mar 10, 2007 6:02 pm; edited 2 times in total
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2579
Location: 92

PostPosted: Sat Mar 10, 2007 4:05 pm    Post subject: Reply with quote

Salut, y a eu un topic la dessus y a plusieurs mois, si tu le trouves t'as la solution ;)
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 4:34 pm    Post subject: Reply with quote

J'ai trouvé un thread qui propose l'utilisation de groff-utf8 :
http://forums.gentoo.org/viewtopic-t-430529-highlight-groffutf8.html

Par ailleurs, si la page de man qu'on veut consulter est réellement encodé en UTF8, comme la page de man de nano, alors ca fait l'effet inverse : plus aucun caractère accentués! J'vais enlevé les pages FR en attendant que ce bug soit réglé. C'est bizarre, car sous ubuntu y'a pas ce probleme et ils n'ont pas l'air d'utiliser groff-utf8.

EDIT: Pour ubuntu, ils ont eu l'idée de réencoder toute leurs pages de man en UTF-8 apparemment, puisque leur système est full UTF-8. Peut être faudrait il ajouter un useflag unicode au paquet sys-apps/man-pages dont l'objectif serait de convertir toutes les pages de man en utf8.

Kal


Last edited by _kal_ on Sat Mar 10, 2007 4:42 pm; edited 2 times in total
Back to top
View user's profile Send private message
nemo13
Veteran
Veteran


Joined: 08 Oct 2004
Posts: 1016
Location: France/Istres

PostPosted: Sat Mar 10, 2007 4:38 pm    Post subject: Reply with quote

_kal_ wrote:
J'ai trouvé un thread qui propose l'utilisation de groff-utf8 :
http://forums.gentoo.org/viewtopic-t-430529-highlight-groffutf8.html

Par ailleurs, si la page de man qu'on veut consulter est réellement encodé en UTF8, comme la page de man de nano, alors ca fait l'effet inverse : plus aucun caractère accentués! J'vais enlevé les pages FR en attendant que ce bug soit réglé. C'est bizarre, car sous ubuntu y'a pas ce probleme et ils n'ont pas l'air d'utiliser groff-utf8.

Kal

bonjour,
c'est sympa pour mon post-count
Bon week :lol:
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 6:01 pm    Post subject: Reply with quote

Bon voila, j'ai partiellement résolu le problème en me créant un ebuild qui converti toutes les pages de man en iso-8859-15. Ainsi, j'ai juste besoin d'avoir dans mon man.conf :
Code:

NROFF           /usr/bin/nroff -c -mandoc


Apres avoir analysé le man de fgets pour ubuntu, je me suis aperçu qu'il était encodé en 8859-15 donc j'ai fait pareil pour toutes mes pages et ça marche :)

Voici l'ebuild si ca peux en interesser quelques-uns. A savoir que j'en profite pour prendre la derniere version 2.39.0, bien plus à jour que celle de portage.

man-pages-fr-2.39.0.ebuild
Code:

# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-i18n/man-pages-fr/man-pages-fr-2.39.0.ebuild,v 1.3 2006/06/21 17:25:19 vapier Exp $

MY_P=${P}
DESCRIPTION="A somewhat comprehensive collection of french Linux man pages"
HOMEPAGE="http://fr.tldp.org/manfr.php"
SRC_URI="ftp://ftp.win.tue.nl/pub/linux-local/manpages/translations/${P}.tar.bz2"

LICENSE="freedist"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc x86"
IUSE=""

RDEPEND="virtual/man"

S=${WORKDIR}/${MY_P}

src_unpack() {
        unpack ${A}
        echo "\$S = $S"
        echo "\$P = $P"
        echo "\$MY_P = ${MY_P}"
        cd "${S}"
}

src_compile() { :; }

src_install() {
        for x in man? ; do
                for i in $(ls $x/) ; do
                        iconv -t iso-8859-15 $x/$i -c -s> $x/$i-latin9
                        if [ $? -ne 0 ] ; then echo problem with $x/$i ; fi
                        mv $x/$i-latin9 $x/$i
                done
                insinto /usr/share/man/fr/${x}
                doins ${x}/* || die "doins ${x}"
        done
}
Back to top
View user's profile Send private message
El_Goretto
Advocate
Advocate


Joined: 29 May 2004
Posts: 2881
Location: Paris

PostPosted: Sat Mar 10, 2007 6:05 pm    Post subject: Reply with quote

Waaaah, tant de violence technique pour ce Week End! :)
Donc nemo13, si j'ai bien compris, ton script est un "wrapper" pour la commande man?

Comme j'ai eu la flemme de m'y pencher plus loin quand j'ai vu que groff-utf8 ne résolvait rien du tout, est-ce que quelqu'un a trouvé quelque chose pour la piste d'un script d'automatisation du réencodage des man fr?
_________________
-PC: 2500K/P8Z68V, 8Go, R9-290, ARC1220+5xWD500RE3, M4 256Go
-Home servers (hardened): µ-serv N40L, 2Go ECC ; NF9D-2700, 4Go ; DS61, i3 2100T, 16Go
-Réseau: ERL-3 + 3x switches GS108Tv2
-NAS: RN312
http://boycottsystemd.org/
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 6:09 pm    Post subject: Reply with quote

El_Goretto wrote:
Waaaah, tant de violence technique pour ce Week End! :)
Donc nemo13, si j'ai bien compris, ton script est un "wrapper" pour la commande man?

Comme j'ai eu la flemme de m'y pencher plus loin quand j'ai vu que groff-utf8 ne résolvait rien du tout, est-ce que quelqu'un a trouvé quelque chose pour la piste d'un script d'automatisation du réencodage des man fr?


Je pourrai faire un script et ne réencoder que les pages qui sont en UTF-8, puisque groff ne supporte pas celles-ci. Par ailleurs, je ne sais pas comment détecter l'encodage d'un fichier man :

Code:

kal@kal-desktop ~ $ file gets.3
gets.3: troff or preprocessor input text


La commande file indique l'encodage du fichier que pour les fichiers texte "réel". Si quelqu'un a une astuce sur ce sujet...

EDIT : arf...
Code:
kal@kal-desktop ~ $ file gets.3 -i
gets.3: text/troff; charset=iso-8859-1

Le pire c'est que je viens me faire ch*** a installer les man pages. Tout ca pour les consulter en dernier recours :lol:
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 6:27 pm    Post subject: Reply with quote

Il existe deux types d'encodage dans les man-pages-fr :
- utf-8
- us-ascii
Pour chacun des deux, l'affichage sur le terminal avec nroff est erroné. Je précise l'utilisation de nroff ainsi :
Code:

NROFF           /usr/bin/nroff -c -mandoc


Par conséquent, je suis obligé de convertir toutes les pages en latin9 pour que ce soit OK. J'vais essayer de mettre un USEFLAG pour ce comportement.
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 6:36 pm    Post subject: Reply with quote

Voici l'ebuild avec le USEFLAG :

man-pages-fr-2.39.0.ebuild
Code:
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-i18n/man-pages-fr/man-pages-fr-2.39.0.ebuild,v 1.3 2006/06/21 17:25:19 vapier Exp $

MY_P=${P}
DESCRIPTION="A somewhat comprehensive collection of french Linux man pages"
HOMEPAGE="http://fr.tldp.org/manfr.php"
SRC_URI="ftp://ftp.win.tue.nl/pub/linux-local/manpages/translations/${P}.tar.bz2"

LICENSE="freedist"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc x86"
IUSE="latin1"

RDEPEND="virtual/man"

S=${WORKDIR}/${MY_P}

src_unpack() {
        unpack ${A}
        echo "\$S = $S"
        echo "\$P = $P"
        echo "\$MY_P = ${MY_P}"
        cd "${S}"
}

src_compile() { :; }

src_install() {
        if use latin1 ; then
                for i in man*/* ; do
                        iconv -t iso-8859-15 $i -c -s > $i-latin9
                        if [ $? -ne 0 ] ; then echo problem with $i ; fi
                        mv $i-latin9 $i
                done
        fi

        for x in man? ; do
                        insinto /usr/share/man/fr/${x}
                doins ${x}/* || die "doins ${x}"
        done
}
Back to top
View user's profile Send private message
nemo13
Veteran
Veteran


Joined: 08 Oct 2004
Posts: 1016
Location: France/Istres

PostPosted: Sat Mar 10, 2007 8:54 pm    Post subject: Reply with quote

El_Goretto wrote:
Donc nemo13, si j'ai bien compris, ton script est un "wrapper" pour la commande man?

yo , j'ai les chevilles qui gonflent :oops:
j'ai bien envie de me faire rebatiser :lol: Wrapper_Man_fr :lol:

Kal wrote:
La commande file indique l'encodage du fichier que pour les fichiers texte "réel". Si quelqu'un a une astuce sur ce sujet...

dans ma bidouille j'utilise
Code:
file -iz

si cela peut te servir ?
Quote:
file -iz /usr/share/man/fr/man1/man.1.gz
/usr/share/man/fr/man1/man.1.gz: text/troff; charset=iso-8859-1 (application/x-gzip)
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2579
Location: 92

PostPosted: Sat Mar 10, 2007 9:47 pm    Post subject: Reply with quote

A ma grande surprise _kal_, je suis le seul (ou j'espère le premier) à te remercier pour ton ebuild.
Malgré les diverses bidouilles sur nroff, j'avais toujours certains man rebels (mplayer).
Tout marche nickel, merci beaucoup ;)
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sat Mar 10, 2007 11:41 pm    Post subject: Reply with quote

Temet wrote:
A ma grande surprise _kal_, je suis le seul (ou j'espère le premier) à te remercier pour ton ebuild.
Malgré les diverses bidouilles sur nroff, j'avais toujours certains man rebels (mplayer).
Tout marche nickel, merci beaucoup ;)


Héhé y'a pas de quoi ;)

Si quelqu'un pense utile de le mettre sur bugzilla, je le ferai. Mais bon je suis pas expert en ebuild, et il y a surement quelques trucs à perfectionner.
Back to top
View user's profile Send private message
julroy67
Apprentice
Apprentice


Joined: 03 Feb 2007
Posts: 209
Location: Alsace >> /dev/null

PostPosted: Sun Mar 11, 2007 9:02 am    Post subject: Reply with quote

AH merci, enfin des man pages correctes, étant donné que j'étais sur Kubuntu et que là-bas sa marchait, je me disais que c'était une mauvaise configuration de moi sur Gentoo. Mais non. ^^

Sa pourrait être utile de mettre sur Bugzilla, c'est quand même chiant ces accents qui marchent pas toujours. :?
_________________
63n700 L1nux P0w44 !

Intel Core2Quad 6600
Abit FP-IN9 SLI Fatal1ty Nforce 580i
Nvidia GeForce 8600 GTS
2 Go RAM DDR800 Corsair

Actualité des jeux sous Linux
Back to top
View user's profile Send private message
bi3l
Apprentice
Apprentice


Joined: 06 Feb 2003
Posts: 268
Location: France

PostPosted: Mon Mar 12, 2007 8:44 am    Post subject: Reply with quote

Merci pour ton ebuild, _kal_ (il faudrait ajouter libiconv dans les dépendances). Ca pourrait aussi être pas mal de patcher /usr/lib/portage/doman pour que toutes les pages de man soient converties en iso-8859-15 à l'installation.
Back to top
View user's profile Send private message
El_Goretto
Advocate
Advocate


Joined: 29 May 2004
Posts: 2881
Location: Paris

PostPosted: Mon Mar 12, 2007 6:27 pm    Post subject: Reply with quote

Merci pour l'ebuild, je la teste dès que j'ai un peu de temps :)
_________________
-PC: 2500K/P8Z68V, 8Go, R9-290, ARC1220+5xWD500RE3, M4 256Go
-Home servers (hardened): µ-serv N40L, 2Go ECC ; NF9D-2700, 4Go ; DS61, i3 2100T, 16Go
-Réseau: ERL-3 + 3x switches GS108Tv2
-NAS: RN312
http://boycottsystemd.org/
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Mar 12, 2007 7:57 pm    Post subject: Reply with quote

bi3l wrote:
Merci pour ton ebuild, _kal_ (il faudrait ajouter libiconv dans les dépendances). Ca pourrait aussi être pas mal de patcher /usr/lib/portage/doman pour que toutes les pages de man soient converties en iso-8859-15 à l'installation.


En effet, je pourrai modifie l'ebuild pour ajouter une dépendance de libiconv en fonction du useflag. Par ailleurs, patcher /usr/lib/portage/doman rendrai mon ebuild inutile, et patcherai des pages de man qui n'ont pas lieu d'etre (les US).
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2579
Location: 92

PostPosted: Tue Mar 13, 2007 4:12 pm    Post subject: Reply with quote

Finalement, ça ne marche pas pour moi.
Ca m'a résolu le man de mplayer, mais un "man cp" merde... t'ain c'est dingue d'avoir des merdes sur un truc aussi con que les pages de man, y a un truc qui tourne pas rond là o_O"
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Tue Mar 13, 2007 6:56 pm    Post subject: Reply with quote

Temet wrote:
Finalement, ça ne marche pas pour moi.
Ca m'a résolu le man de mplayer, mais un "man cp" merde... t'ain c'est dingue d'avoir des merdes sur un truc aussi con que les pages de man, y a un truc qui tourne pas rond là o_O"


Heu c'est bizarre, le man de cp est nikel chez moi.

Code:
kal@kal-desktop ~ $ grep -i /bin/nroff /etc/man.conf
NROFF           /usr/bin/nroff -mandoc -c


Regarde si tu as bien ça :)

Sinon c'est que t'as pas installé mon ebuild ou que t'a conservé les anciens man je sais pas...
Back to top
View user's profile Send private message
nemo13
Veteran
Veteran


Joined: 08 Oct 2004
Posts: 1016
Location: France/Istres

PostPosted: Tue Mar 13, 2007 8:01 pm    Post subject: Reply with quote

Temet wrote:
Finalement, ça ne marche pas pour moi.
Ca m'a résolu le man de mplayer, mais un "man cp" merde... t'ain c'est dingue d'avoir des merdes sur un truc aussi con que les pages de man, y a un truc qui tourne pas rond là o_O"


Code:
llfm cp
/usr/share/man/fr/man1/cp.1.gz: text/troff; charset=utf-8 (application/x-gzip)

cp est codé en utf8
groff de base ne sait pas le traiter
grff-utf8 oui mais dans ce cas ,c'est d'autres pages qui merdoient

voili-voila.
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Tue Mar 13, 2007 9:24 pm    Post subject: Reply with quote

Oui mais normalement mon ebuild contient le man de cp et le convertit donc en 8859-15. Essai de voir si t'as deux man de cp en faisait :

Code:
man -aw cp


Si oui, tu peux tous les visualiser grace à
Code:
man -a cp

Il suffit de tapper 'q' pour passer au man suivant :)
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2579
Location: 92

PostPosted: Tue Mar 13, 2007 10:39 pm    Post subject: Reply with quote

Mon système est en iso hein, pas en utf8.
Et non, j'ai n'ai qu'un man de cp en Français, et il ne passe pas.

Code:
temet@gentoo ~ $ grep -i /bin/nroff /etc/man.conf
#NROFF          /usr/bin/nroff -Tascii -c -mandoc
NROFF           /usr/bin/nroff -c -mandoc
#NROFF          /usr/bin/iconv -f utf8 -t iso8859-15 | /usr/bin/nroff -mandoc
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Wed Mar 14, 2007 10:57 am    Post subject: Reply with quote

Temet wrote:
Mon système est en iso hein, pas en utf8.
Et non, j'ai n'ai qu'un man de cp en Français, et il ne passe pas.

Code:
temet@gentoo ~ $ grep -i /bin/nroff /etc/man.conf
#NROFF          /usr/bin/nroff -Tascii -c -mandoc
NROFF           /usr/bin/nroff -c -mandoc
#NROFF          /usr/bin/iconv -f utf8 -t iso8859-15 | /usr/bin/nroff -mandoc


Ah bah si tu es en iso, c'est normal. Cet ebuild est fait pour corriger les problemes de pages man lorsque le système est en UTf-8. Peut etre qu'il faut que tu ajoutes l'option -Tlatin1 à ton nroff... Je sais pas trop ;)
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2579
Location: 92

PostPosted: Wed Mar 14, 2007 12:14 pm    Post subject: Reply with quote

Déjà essayé avec le -Tlatin1, ça ne fait rien.
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Wed Mar 14, 2007 5:47 pm    Post subject: Reply with quote

Temet wrote:
Déjà essayé avec le -Tlatin1, ça ne fait rien.


C'est incroyable, meme lorsque le système est en iso il y a des problemes avec ces pages de man! J'ai testé sur une Fedora 4 à la fac ce matin, et il n'y pas ce problème non plus. Il faudrai en effet modifier l'utilitaire doman de portage afin de tout convertir en iso-8859-15.
Back to top
View user's profile Send private message
swilmet
n00b
n00b


Joined: 14 Mar 2007
Posts: 70
Location: Belgium

PostPosted: Wed Mar 14, 2007 11:38 pm    Post subject: Reply with quote

Merci pour l'ebuild :)
Mais est-ce normal que la page man de bash ne soit pas disponible en français ?

Code:
seb@localhost ~ $ man -aw bash
/usr/share/man/man1/bash.1.bz2


Je suppose que c'est la version 2.39 qui y est pour quelque chose, donc comment adapter ton ebuild pour que ce soit la version 1.64 qui soit installé (celle proposée par portage) ?

J'ai aussi essayé de faire un script (en reprenant le code de ton ebuild) pour convertir les pages man en latin9 (quand c'est l'ebuild 1.64 qui est installé) :
Code:
#!/bin/sh
for i in /usr/share/man/fr/man*/* ; do
        iconv -t iso-8859-15 $i -c -s > $i-latin9
        if [ $? -ne 0 ] ; then echo problem with $i ; fi
        mv $i-latin9 $i
done

Mais j'obtiens des erreurs :
Code:
[...]
problem with /usr/share/man/fr/man3/asinl.3.bz2
problem with /usr/share/man/fr/man3/asprintf.3.bz2
problem with /usr/share/man/fr/man3/assert.3.bz2
iconv: Caractère ou séquence de changement incomplet à la fin du tampon
problem with /usr/share/man/fr/man3/assert_perror.3.bz2
problem with /usr/share/man/fr/man3/atan2.3.bz2
problem with /usr/share/man/fr/man3/atan2f.3.bz2
problem with /usr/share/man/fr/man3/atan2l.3.bz2
problem with /usr/share/man/fr/man3/atan.3.bz2
problem with /usr/share/man/fr/man3/atanf.3.bz2
iconv: Caractère ou séquence de changement incomplet à la fin du tampon
problem with /usr/share/man/fr/man3/atanh.3.bz2
problem with /usr/share/man/fr/man3/atanhf.3.bz2
[...]


Voilà
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum