From: Wilfried Goesgens Date: Tue, 25 Jun 2013 21:13:40 +0000 (+0200) Subject: GETTEXT: when re-using a session, make shure we re-detect the locales. X-Git-Tag: v8.20~12 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=f2fa0bdcd47944fb20d5c9ba94c054294bdfb065 GETTEXT: when re-using a session, make shure we re-detect the locales. --- diff --git a/webcit/context_loop.c b/webcit/context_loop.c index 5320e56fc..ee30aaa43 100644 --- a/webcit/context_loop.c +++ b/webcit/context_loop.c @@ -633,9 +633,9 @@ void context_loop(ParsedHttpHdrs *Hdr) * table from getting bombarded with new sessions when, for example, a web * spider crawls the site without using cookies. */ - if ((session_may_be_reused) && (!WC->logged_in)) { - WC->wc_session = 0; /* flag as available for re-use */ - TheSession->selected_language = 0; /* clear any non-default language setting */ + if ((session_may_be_reused) && (!TheSession->logged_in)) { + TheSession->wc_session = 0; /* flag as available for re-use */ + TheSession->selected_language = -1; /* clear any non-default language setting */ } TheSession->Hdr = NULL; diff --git a/webcit/gettext.c b/webcit/gettext.c index 83b2df429..0ac19d093 100644 --- a/webcit/gettext.c +++ b/webcit/gettext.c @@ -262,7 +262,12 @@ void set_selected_language(const char *lang) { void go_selected_language(void) { #ifdef HAVE_USELOCALE wcsession *WCC = WC; - if (WCC->selected_language < 0) return; + if (WCC->selected_language < 0) + { + httplang_to_locale(WCC->Hdr->HR.browser_language, WCC); + if (WCC->selected_language < 0) + return; + } uselocale(wc_locales[WCC->selected_language]); /* switch locales */ textdomain(textdomain(NULL)); /* clear the cache */ #else