agreed. isn't there an even easier way, though? something that uses the
pre-processor's ## operator, like this:
/* begin example */
#define HELLO_generic "generic greeting"
#define HELLO_english "hello!"
#define HELLO_french "bonjour!"
#define HELLO_spanish "buenos dias!"
#ifndef LANGUAGE
#define LANGUAGE _generic
#endif
#define INTERNATIONAL(x) PREINTL2(x,LANG)
#define PREINTL2(x,y) PREINTL(x,y)
#define PREINTL(x,y) x##y
printk(INTERNATIONAL(HELLO));
/* end example */
then all you have to do is stick a -DLANGUAGE=_whatever in the arguments
to gcc when you compile the kernel. and yes, somebody has to provide all
the language specific strings, but like somebody else pointed out, that
can be done incrementally by means of patches.