Re: [DDR] po-debconf://pnm2ppa/fr.po
On Wed, Sep 10, 2003 at 09:44:55AM +0200, Christian Perrier wrote:
> Quoting Denis Barbier (barbier@linuxfr.org):
>
> > Tu peux renvoyer ton script, qu'on regarde ce qui cloche ?
>
> Ahem, patapé, il est vraiment nul.... :-)
D'après tes explications, tu voudrais ne pas reformater ; or
c'est nécessaire pour ne pas modifier les msgid avec sed.
Voici une approche différente, en Perl. J'ai vaguement testé,
il peut y avoir des erreurs.
Denis
--- relire.orig 2003-09-10 21:19:24.000000000 +0200
+++ relire 2003-09-10 21:33:26.000000000 +0200
@@ -17,17 +17,40 @@
if [ "$answer" = "O" -o "$answer" = "o" -o "$answer" = "" ]
then
TEMPFILE=`tempfile`
- sed ':a;N;$!ba;s/"\n"//g' fr.po.relu-bubulle >$TEMPFILE && mv $TEMPFILE fr.po.relu-bubulle
- cat fr.po.relu-bubulle | \
- sed '/^msgstr/s/« /« /g' | \
- sed '/^msgstr/s/p\.ex\./p\. ex\./g' | \
- sed '/^msgstr/s/par ex\./p\. ex\./g' | \
- sed '/^msgstr/s/ »/ »/g' | \
- sed '/^msgstr/s/ ?/ ?/g' | \
- sed '/^msgstr/s/ !/ !/g' | \
- sed '/^msgstr/s/ :/ :/g' | \
- sed '/^msgstr/s/ ;/ ;/g' \
- > $TEMPFILE && mv $TEMPFILE fr.po.relu-bubulle
+ perl -e '
+ sub fix {
+ my $text = shift;
+ $text =~ s/«("\\n")? /« /g;
+ $text =~ s/p("\\n")?\.("\\n")?e("\\n")?x("\\n")?\./p\. ex\./g;
+ $text =~ s/p("\\n")?a("\\n")?r("\\n")? ("\\n")?e("\\n")?x("\\n")?\./p\. ex\./g;
+ $text =~ s/ ("\\n")?»/ »/g;
+ $text =~ s/ ("\\n")?\?/ ?/g;
+ $text =~ s/ ("\\n")?!/ !/g;
+ $text =~ s/ ("\\n")?:/ :/g;
+ $text =~ s/ ("\\n")?;/ ;/g;
+ return $text;
+ }
+ my $inmsgstr = 0;
+ my $line = "";
+ while (<>) {
+ if (m/^msgid/ || m/^$/) {
+ if ($inmsgstr) {
+ print fix($line);
+ $line = "";
+ }
+ print;
+ $inmsgstr = 0;
+ } elsif (m/^msgstr/) {
+ $inmsgstr = 1;
+ $line = $_;
+ } elsif ($inmsgstr) {
+ $line .= $_;
+ } else {
+ print;
+ }
+ }
+ print fix($line) if $inmsgstr;
+ ' fr.po.relu-bubulle >$TEMPFILE && mv $TEMPFILE fr.po.relu-bubulle
fi
more fr.po.relu-bubulle
echo -n "Reformater (o/N)? "
Reply to: