From 091967d8bc53b1121aee57d9717a257fe3f72d13 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 24 Feb 2011 22:27:13 -0500 Subject: [PATCH] Switching languages now works again --- webcit/auth.c | 10 ++++++++++ webcit/gettext.c | 5 +++-- webcit/static/wclib.js | 7 +++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/webcit/auth.c b/webcit/auth.c index a1f881645..207d4a9c5 100644 --- a/webcit/auth.c +++ b/webcit/auth.c @@ -881,6 +881,15 @@ int ConditionalIsLoggedIn(StrBuf *Target, WCTemplputParams *TP) } +/* + * toggle the session over to a different language + */ +void switch_language(void) { + set_selected_language(bstr("lang")); + pop_destination(); +} + + void _display_reg(void) { display_reg(0); } @@ -1015,6 +1024,7 @@ InitModule_AUTH WebcitAddUrlHandler(HKEY("do_logout"), "", 0, do_logout, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE); WebcitAddUrlHandler(HKEY("ajax_login_username_password"), "", 0, ajax_login_username_password, AJAX|ANONYMOUS); WebcitAddUrlHandler(HKEY("ajax_login_newuser"), "", 0, ajax_login_newuser, AJAX|ANONYMOUS); + WebcitAddUrlHandler(HKEY("switch_language"), "", 0, switch_language, ANONYMOUS); RegisterConditional(HKEY("COND:AIDE"), 2, ConditionalAide, CTX_NONE); RegisterConditional(HKEY("COND:LOGGEDIN"), 2, ConditionalIsLoggedIn, CTX_NONE); RegisterConditional(HKEY("COND:MAY_CREATE_ROOM"), 2, ConditionalHaveAccessCreateRoom, CTX_NONE); diff --git a/webcit/gettext.c b/webcit/gettext.c index 432e0ff74..a4dbd3bbe 100644 --- a/webcit/gettext.c +++ b/webcit/gettext.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996-2010 by the citadel.org team + * Copyright (c) 1996-2011 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -217,7 +217,7 @@ void tmplput_offer_languages(StrBuf *Target, WCTemplputParams *TP) return; } - wc_printf("\n"); for (i=0; i < nLocalesLoaded; ++i) { #ifndef HAVE_USELOCALE @@ -448,6 +448,7 @@ void Header_HandleAcceptLanguage(StrBuf *Line, ParsedHttpHdrs *hdr) hdr->HR.browser_language = Line; } + void InitModule_GETTEXT (void) diff --git a/webcit/static/wclib.js b/webcit/static/wclib.js index 711bbf520..bb193c7b2 100644 --- a/webcit/static/wclib.js +++ b/webcit/static/wclib.js @@ -876,3 +876,10 @@ function ConfirmLogoff() { } ); } + + +function switch_to_lang(new_lang) { + p = 'push?url=' + encodeURI(window.location); + new Ajax.Request(p, { method: 'get' } ); + window.location = 'switch_language?lang=' + new_lang ; +} -- 2.30.2