}
}
if (WC->logged_in) {
+ set_preference("language", NewStrBufPlain(bstr("language"), -1), 1);
if (WC->need_regi) {
display_reg(1);
} else if (WC->need_vali) {
StrBufCutLeft(Buf, 1);
}
if (StrLength(Buf) == 0)
- StrBufAppendBufPlain(Buf, "/knrooms", 1, 0);
+ StrBufAppendBufPlain(Buf, "dotgoto?room=_BASEROOM_", -1, 0);
http_redirect(ChrPtr(Buf));
}
* \brief Set the selected language for this session.
* \param lang the locale to set.
*/
-void set_selected_language(char *lang) {
+void set_selected_language(const char *lang) {
int i;
+
#ifdef HAVE_USELOCALE
for (i=0; i<NUM_LANGS; ++i) {
if (!strcasecmp(lang, AvailLang[i])) {
}
}
}
-
+////////todo: restorte language in this case
/*
* Functions which can be performed without logging in
*/
serv_printf("PASS %s", c_password);
serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
+ StrBuf *Lang;
become_logged_in(c_username, c_password, buf);
+ if (get_preference("language", &Lang)) {
+ set_selected_language(ChrPtr(Lang));
+ go_selected_language(); /* set locale */
+ }
}
}
}
void spawn_another_worker_thread(void);
void display_rss(char *roomname, char *request_method);
void offer_languages(void);
-void set_selected_language(char *);
+void set_selected_language(const char *);
void go_selected_language(void);
void stop_selected_language(void);
void preset_locale(void);