Thread Pod::Man und UTF-8 Probleme (2 answers)
Opened by morph at 2008-01-09 21:57

morph
 2008-01-09 21:57
#104558 #104558
User since
2007-12-06
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo beisammen.

Derzeit arbeite ich an meinem ersten Opensource Projekt, für das ich mit pod2man auch Linux manpages erstelle. Leider habe ich nun festgestellt, dass CPAN:Pod::Man sich dabei nicht um die Sonderzeichen (Umlaute) kümmert. So beobachte ich beispielsweise das Phänomen, dass die erzeugten Manpages verschieden behandelt werden. Dabei zeigt sich das ein direkter Aufruf der groff Datei problemlos funktioniert, nachdem ich das Tool aber installiert habe zerhackt es mir die deutschen Umlaute. Bei der Installation werden die Manpages natürlich in die dafür vorgesehenen Ordner /usr/share/man/man[15]/ kopiert.

Beispiel:
Code: (dl )
1
2
3
4
5
# Umlaute werden korrekt ausgegeben.
../docs $ man ./splitbox.1.gz

# Umlaute werden nicht korrekt ausgegeben.
~/ $ man splitbox


Nun bin ich auf der Mailingliste ubuntu-de auf einen Artikel gestoßen worden, der im Bezug auf englische "quotation marks" ein Problem in CPAN:Pod::Man behandelt, welches im mitgelieferten Modul von Perl 5.10 behoben sein soll. So habe ich also weitergesucht und bin auf ein, zwar schon sehr altes aber dennoch hilfreiches Posting gestoßen, welches mir zumindest schon mal eine IMHO rudimentäre Lösung offenbarte.

Meine Lösung:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
# $1 == language (en/de)
# $2 == gz

SCRIPT=splitbox
VERSION=0.0.3
DOCS=/home/uwe/work/MyOpenSource/Perl/$SCRIPT/docs/$VERSION/$1

pod2man --section=1 --release=$VERSION $DOCS/$SCRIPT.pod ./$SCRIPT.1
pod2man --section=5 --release=$VERSION $DOCS/$SCRIPT.conf.pod ./$SCRIPT.conf.5

for i in ./$SCRIPT.1 ./$SCRIPT.conf.5; do
sed -e '1,$ s/ä/\\[char228]/g' $i > $i.new; mv $i.new $i
sed -e '1,$ s/ö/\\[char246]/g' $i > $i.new; mv $i.new $i
sed -e '1,$ s/ü/\\[char252]/g' $i > $i.new; mv $i.new $i
sed -e '1,$ s/Ä/\\[char196]/g' $i > $i.new; mv $i.new $i
sed -e '1,$ s/Ö/\\[char214]/g' $i > $i.new; mv $i.new $i
sed -e '1,$ s/Ü/\\[char220]/g' $i > $i.new; mv $i.new $i
sed -e '1,$ s/ß/\\[char223]/g' $i > $i.new; mv $i.new $i
done

if [ "$2" == "gz" ]; then
gzip ./$SCRIPT.1
gzip ./$SCRIPT.conf.5
fi


Dieser Ansatz erscheint mir jedoch etwas unbeholfen, wobei ich mir nun auch überlege, ob die Manpages auf einem Linux-System, dass keine UTF-8 Locales eingerichtet hat, korrekt ausgegeben werden.

Und an dieser Stelle möchte ich doch einmal nachfragen, welche Erfahrungen Ihr diesbezüglich gesammelt habt. Ich gehe einfach mal davon aus, dass unter Euch jemand ist, der auf ähnliche Probleme gestoßen ist, wenn es um die Manpage-Erstellung geht.

Herzliche Grüße
Uwe

View full thread Pod::Man und UTF-8 Probleme