Вот интересно, кто что использует для выбора языка вывода сообщений «на лету»?
Я, например, придумал такую конструкцию
#define _LANG(_var, _ru, _en) char _var##ru[] = _ru;\
char _var##en[] = _en;\
char *_var[2] = {_var##ru, _var##en};
#define _L(x) (x[Lang])
unsigned char Lang = 1; // по умолчанию - английский
_LANG(_s_Name_, "Ваше имя", "Your name");
...
ptr = getenv("HTTP_ACCEPT_LANGUAGE");
if(ptr) if(strncmp(ptr, "ru", 2) == 0) Lang = 0;
...
printf("%s:<input type='text' name='Name' OnChange='submit_form();' size=50>\n", _L(_s_Name_));