From: Art Cancro Date: Fri, 25 Feb 2011 03:27:13 +0000 (-0500) Subject: Switching languages now works again X-Git-Tag: v8.11~844 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=091967d8bc53b1121aee57d9717a257fe3f72d13 Switching languages now works again --- 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 ; +}