So, I'm trying to add internationalization to my current little project, Tiny 'Nux Tarot (and to learn how it works), and really, it bores me. I mean, I was pretty sure I understood the base of gettext and it was quite simple: first, you add a gettext call to all transtlatable strings in the code, which might be a bit tedious but is relatively easy (it's just replacing "some string" with _("some string")); then you do the appropriate change in Makefile.am and configure.ac, which isn't that easy for me because I have real trouble with autools but there is some sample project in Vala, so I figured it would just be some copy/pasting. Then you run gettext to all your directory so it generates a .pot file which can serve as template for translation.

Well, *relatively* simple, anyway.

What loses me a bit is the step I am supposed to do next. I can run gettextize, or xgettextize, or glib-gettextize, but I am not even sure I am supposed to that if I did the good copy/pasting part. And there is intltoolize, too, apprarently. And all these tools seem to generate tons of files which I am not sure I need, and no matter what I do, the result is pretty much the same: it doesn't compile. Great result, uh?

Okay, I admit, I have only spent some time on it yet, and I am still relatively confident that I will eventually succeed through that ordeal, yet I can't help but wonder: isn't there a simplier way? Or at least, couldn't there be a simplier way? Maybe I'm lazy, maybe I missed some stuff, maybe it would be much simpler using an IDE, but it's a bit frustrating to see how time-consuming all those configuration tasks can be.

(Update: okay, actually this wasn't that complicated. In fact, the main trick to understand — and that lost me at first — is that while use gettext in your program, it's simpler not to call any of "gettext", "gettextize" "xgettextize" program, and just use autogen.sh and intltool-update. Admittedly, I am not sure I understand half of the modifications I brougt to my non-code files, but copy-pasting from a sample app with those tools correctly configured seemed to work.)