X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=webcit%2Fgettext.c;h=54d4ba3ae5cb0f7e5eca6448c28ad98b6c3acad4;hp=58a0edd8d78bb48437893ecab62f4a47ccf37ab4;hb=a6e90dc4d19b9d7b7f9b55d281cf237bc5f40f66;hpb=2231ed4d99d9e8adc745c3b2959d885259931c12 diff --git a/webcit/gettext.c b/webcit/gettext.c index 58a0edd8d..54d4ba3ae 100644 --- a/webcit/gettext.c +++ b/webcit/gettext.c @@ -18,6 +18,7 @@ /* actual supported locales */ const char *AvailLang[] = { "C", + "ar_AR", "bg_BG", "cs_CZ", "en_US", @@ -51,7 +52,7 @@ locale_t *wc_locales; /* here we keep the parsed stuff */ #endif /* Keep information about one locale */ -typedef struct _lang_pref{ +typedef struct _lang_pref { char lang[16]; /* the language locale string */ char region[16]; /* the region locale string */ long priority; /* which priority does it have */ @@ -196,7 +197,7 @@ void httplang_to_locale(StrBuf *LocaleString, wcsession *sess) nBest=0; } sess->selected_language = nBest; - syslog(9, "language found: %s", AvailLangLoaded[WC->selected_language]); + syslog(LOG_DEBUG, "language found: %s", AvailLangLoaded[WC->selected_language]); FreeStrBuf(&Buf); FreeStrBuf(&SBuf); } @@ -293,20 +294,13 @@ void initialize_locales(void) { char buf[32]; char *language = NULL; -#ifdef ENABLE_NLS - setlocale(LC_ALL, ""); - syslog(9, "Text domain: %s", textdomain("webcit")); - syslog(9, "Message catalog directory: %s", bindtextdomain(textdomain(NULL), LOCALEDIR"/locale")); - syslog(9, "Text domain Charset: %s", bind_textdomain_codeset("webcit","UTF8")); -#endif - nLocales = 0; while (!IsEmptyStr(AvailLang[nLocales])) nLocales++; language = getenv("WEBCIT_LANG"); if ((language) && (!IsEmptyStr(language)) && (strcmp(language, "UNLIMITED") != 0)) { - syslog(9, "Nailing locale to %s", language); + syslog(LOG_INFO, "Nailing locale to %s", language); } else language = NULL; @@ -332,18 +326,13 @@ void initialize_locales(void) { wc_locales[nLocalesLoaded] = newlocale( (LC_MESSAGES_MASK|LC_TIME_MASK), buf, - Empty_Locale + (((i > 0) && (wc_locales[0] != NULL)) ? wc_locales[0] : Empty_Locale) ); if (wc_locales[nLocalesLoaded] == NULL) { - syslog(1, "locale for %s disabled: %s (domain: %s, path: %s)", - buf, - strerror(errno), - textdomain(NULL), - bindtextdomain(textdomain(NULL), NULL) - ); + syslog(LOG_NOTICE, "locale for %s disabled: %s", buf, strerror(errno)); } else { - syslog(3, "Found locale: %s", buf); + syslog(LOG_INFO, "Found locale: %s", buf); AvailLangLoaded[nLocalesLoaded] = AvailLang[i]; nLocalesLoaded++; } @@ -362,7 +351,7 @@ void initialize_locales(void) { #endif } if ((language != NULL) && (nLocalesLoaded == 0)) { - syslog(1, "Your selected locale [%s] isn't available on your system. falling back to C", language); + syslog(LOG_WARNING, "Your selected locale [%s] isn't available on your system. falling back to C", language); #ifdef HAVE_USELOCALE wc_locales[0] = newlocale( (LC_MESSAGES_MASK|LC_TIME_MASK), @@ -376,6 +365,13 @@ void initialize_locales(void) { AvailLangLoaded[0] = AvailLang[0]; nLocalesLoaded = 1; } + +#ifdef ENABLE_NLS + setlocale(LC_ALL, ""); + syslog(LOG_DEBUG, "Text domain: %s", textdomain("webcit")); + syslog(LOG_DEBUG, "Text domain Charset: %s", bind_textdomain_codeset("webcit", "UTF8")); + syslog(LOG_DEBUG, "Message catalog directory: %s", bindtextdomain(textdomain(NULL), LOCALEDIR"/locale")); +#endif } @@ -402,6 +398,13 @@ const char *AvailLang[] = { }; /* dummy for non NLS enabled systems */ +void +ServerShutdownModule_GETTEXT +(void) +{ +} + + void tmplput_offer_languages(StrBuf *Target, WCTemplputParams *TP) { wc_printf("English (US)"); @@ -438,7 +441,7 @@ void TmplGettext(StrBuf *Target, WCTemplputParams *TP) const char *get_selected_language(void) { #ifdef ENABLE_NLS #ifdef HAVE_USELOCALE - return AvailLang[WC->selected_language]; + return AvailLangLoaded[WC->selected_language]; #else return "en"; #endif