Gettext: once we found the language specified, abort searching.
[citadel.git] / webcit / gettext.c
index c4920cea7c3082166215be18c73f378be66d8bd1..636fb035b29f2630459925662000595364510ded 100644 (file)
@@ -40,6 +40,7 @@ const char *AvailLang[] = {
        "nl_NL",
        "pt_BR",
        "ru_RU",
+       "zh_CN",
        ""
 };
 
@@ -243,6 +244,7 @@ void set_selected_language(const char *lang) {
        for (i = 0; i<nLocalesLoaded; ++i) {
                if (!strcasecmp(lang, AvailLangLoaded[i])) {
                        WC->selected_language = i;
+                       break;
                }
        }
 #endif
@@ -287,8 +289,6 @@ void initialize_locales(void) {
        int i;
        char buf[32];
        char *language = NULL;
-       char *locale;
-
 
        nLocales = 0; 
        while (!IsEmptyStr(AvailLang[nLocales]))
@@ -368,7 +368,7 @@ void initialize_locales(void) {
        }
 
 #ifdef ENABLE_NLS
-       locale = setlocale(LC_ALL, "");
+       /*locale = */setlocale(LC_ALL, "");
 
        syslog(9, "Message catalog directory: %s\n", bindtextdomain("webcit", LOCALEDIR"/locale"));
        syslog(9, "Text domain: %s\n", textdomain("webcit"));
@@ -469,8 +469,10 @@ SessionNewModule_GETTEXT
 (wcsession *sess)
 {
 #ifdef ENABLE_NLS
-       if (!sess->Hdr->HR.Static && 
-           (sess->Hdr->HR.browser_language != NULL)) {
+       if (    (sess != NULL)
+               && (!sess->Hdr->HR.Static)
+               && (sess->Hdr->HR.browser_language != NULL)
+       ) {
                httplang_to_locale(sess->Hdr->HR.browser_language, sess);
        }
 #endif