/* Public domain */ /* * Internationalization macros. */ #include #ifdef ENABLE_NLS # include # include # define _(String) dgettext("hello-fcgi",String) # ifdef dgettext_noop # define N_(String) dgettext_noop("hello-fcgi",String) # else # define N_(String) (String) # endif #else # undef _ # undef N_ # undef ngettext # define _(s) (s) # define N_(s) (s) # define ngettext(Singular,Plural,Number) ((Number==1)?(Singular):(Plural)) #endif /* !ENABLE_NLS */ #if defined(ENABLE_NLS) && defined(NLS_MAIN) /* Language switch callback routine. */ static int NLS_SetLanguage(const char *lang, void *p) { if (strcmp(lang, "fr") == 0) { setenv("LANG", "fr", 1); setenv("LANGUAGE", "fr", 1); } else { unsetenv("LANG"); unsetenv("LANGUAGE"); textdomain("hello_fcgi"); } return (0); } /* NLS Initialization routine called from main(). */ static void NLS_Init(const char *cat, const char *charset) { CGI_SetLanguageFn(NLS_SetLanguage, NULL); setlocale(LC_ALL, ""); bindtextdomain(cat, LOCALEDIR); bind_textdomain_codeset(cat, charset); textdomain(cat); } #else /* !ENABLE_NLS || !NLS_MAIN */ static void NLS_Init(const char *cat, const char *charset) { } #endif /* ENABLE_NLS && NLS_MAIN */