On Thu, Dec 05, 2013 at 04:30:04PM +0100, Pino Toscano wrote: > Extracting separately the pot for the various languages and then > creating manually the global pot (by manually joining the above ones > after having stripped their headers) is wrong, since other than being > an hack it can create an invalid pot when the same message appears in > sources written in different languages. > > Instead, a cleaner and safer solution is to first let ocaml-gettext > (if available) extract the messages for the ml files, and then use > xgettext to extract the messages for the other languages, joining the > new messages to the existing (or not) pot file. > --- > po/Makefile.am | 22 ++++++---------------- > 1 file changed, 6 insertions(+), 16 deletions(-) > > diff --git a/po/Makefile.am b/po/Makefile.am > index e2bfe45..b0a8038 100644 > --- a/po/Makefile.am > +++ b/po/Makefile.am > @@ -66,24 +66,14 @@ XGETTEXT_ARGS = \ > --directory=$(top_srcdir) > > $(DOMAIN).pot: Makefile $(POTFILES) $(POTFILES-pl) $(POTFILES-ml) > - rm -f $@-t $@-pl $@-ml > - $(XGETTEXT) -o $@-t $(XGETTEXT_ARGS) \ > - --files-from=$(abs_srcdir)/POTFILES > - $(XGETTEXT) -o $@-pl $(XGETTEXT_ARGS) --language=Perl \ > - --files-from=$(abs_srcdir)/POTFILES-pl > -# Don't trust msgcat since it will definitely screw up. Instead, chop > -# the head from the second file and append it to the first. > - echo >> $@-t > - awk '/^#:/{i++}i{print}' < $@-pl >> $@-t > - rm $@-pl > + rm -f $@-t > if HAVE_OCAML_GETTEXT > - $(OCAML_GETTEXT) --action extract --extract-pot $@-ml $(POTFILES_ML) > -# Don't trust msgcat since it will definitely screw up. Instead, chop > -# the head from the second file and append it to the first. > - echo >> $@-t > - awk '/^#:/{i++}i{print}' < $@-ml >> $@-t > - rm $@-ml > + $(OCAML_GETTEXT) --action extract --extract-pot $@-t $(POTFILES_ML) > endif > + $(XGETTEXT) -j -o $@-t $(XGETTEXT_ARGS) \ > + --files-from=$(abs_srcdir)/POTFILES > + $(XGETTEXT) -j -o $@-t $(XGETTEXT_ARGS) --language=Perl \ > + --files-from=$(abs_srcdir)/POTFILES-pl > mv $@-t $@ > > %.po: $(DOMAIN).pot > -- > 1.8.3.1
ACK. This appears to be OK, and the results look sane: $ ll po/libguestfs.pot* -rw-rw-r--. 1 rjones rjones 180001 Dec 5 15:52 po/libguestfs.pot -rw-rw-r--. 1 rjones rjones 178207 Dec 5 15:40 po/libguestfs.pot-backup and I also checked the pot file (which is basically impossible) but it doesn't look as if messages are being dropped. Thanks, I'm going to push 1/3 and 3/3 for now. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs