Whilst gettext is certainly a good practice towards i18n/l13n, it's certainly not the be-all and end-all of dealing with multiple languages. I'd be in favour of the languages being done at compile time, not inside the repository as much as possible. Constants, templates and lots of #define are suitable work arounds.