From f2fa0bdcd47944fb20d5c9ba94c054294bdfb065 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Tue, 25 Jun 2013 23:13:40 +0200 Subject: [PATCH] GETTEXT: when re-using a session, make shure we re-detect the locales. --- webcit/context_loop.c | 6 +++--- webcit/gettext.c | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) 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 -- 2.30.2