views:

29

answers:

1

Summary :

I have a project using GNU Autotools. I have a pot file. I need to update it. Is there a magical "make" task that run xgettext for me (I'm lazy ?)

Verbose version :

Hi

I am trying to setup a project using GNU autotools and gettext.

I'm trying to follow the 'lazy' path (that is, only writing configure.ac, Makefile.am, and such, and let tools generate the rest for me as much as possible).

I used gettextize once on my package, so I got a package.pot file created, and I derived a fr.po file (I'm trying to translate in french).

I never managed to get my code translated, but I figured out it might be because the code was not in the proper place. The translated string is in a lib instead of a main, and the documentation is quite unclear about what I must do in this case. If my main call a function in a lib, and the function from the lib is using _(). Should I use gettext of dgettext in this case ? My lib is just here for organisation purpose, so I'm okay with using the same domain (only one package.pot file for the whole app).

So, to try something simpler, I moved my string to the main (it's really just a hello world, for the moment). So I need to update the package.pot file, at least, to realize that the string position changed, need I ? In this case, would I use xgettext manually (painfully passing it the list of all interesting cpp files, which will be a pain in the ass when I have more than one file), or is there a 'make whatever' task somewhere that I can run ?

This may look stupid, but I've not been able to find it.

Also, any help on finding why my code is not translated, (anything not in http://www.gnu.org/software/gettext/FAQ.html#integrating%5Fnoop) is welcome !

Thanks

PH

A: 

Ok, it turns out that :

  • there is a update-po task in the generated Makefile of the po/ folder, that does just what I want ;
  • this tasks looks to file referenced in the POTFILES.in file, which I had forgotten to update.

So it was something stupid.

phtrivier