diff options
-rw-r--r-- | perl-install/share/po/Makefile | 2 | ||||
-rwxr-xr-x | perl-install/share/po/fake_c.pl | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/perl-install/share/po/Makefile b/perl-install/share/po/Makefile index a9bcad71d..1e2f640ce 100644 --- a/perl-install/share/po/Makefile +++ b/perl-install/share/po/Makefile @@ -34,6 +34,6 @@ verif2: grep "^msgid" DrakX.pot | sort | diff - tmp.pot.light | grep "^>" || true $(PMSCFILES): %_.c: % - perl -lpe 's|^(__?\()| $$1|; s,\Qs/#.*//,,; s|//|/""/|g; s,(^|[^\$$])#([^+].*),\1/*\2*/,; s|$$|\\n\\|' $< > $@ + ./fake_c.pl $< > $@ # for i in *.po; do echo -n "$i "; msgfmt -v $i 2>&1; done | perl -e 'print map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, (split)[1] ] } <>' diff --git a/perl-install/share/po/fake_c.pl b/perl-install/share/po/fake_c.pl new file mode 100755 index 000000000..86146bdaf --- /dev/null +++ b/perl-install/share/po/fake_c.pl @@ -0,0 +1,14 @@ +#!/usr/bin/perl -lp + +s|_\(\[(.*),\s*(.*),\s*(.*)\]| ngettext($2,$3,$1)|; # special plural form handling + +s|^(__?\()| $1|; # add a blank at the beginning (?!) +s,\Qs/#.*//,,; # ugly special case +s|//|/""/|g; # ensure // or not understood as comments + +s,(^|[^\$])#([^+].*),\1/*\2*/,; # rewrite comments to C format except for: + # - ``#+ xxx'' comments which are kept + # - ``$#xxx'' which are not comments + +s|$|\\n\\|; # multi-line strings not handled in C + |