I tried to change the language from en_us to something different.
Whenever I saved the language all my labels would change to the
configured language. But as soon as I click a link I'm getting the
language that is in the config file ( default that's en, but if you
change it to es it will be spanish..). The language is correctly saved
to the database. I've looked into the code and found what is causing it.
See this snippet from main.inc:
78 // init session
79 session_start();
80 $sess_id = session_id();
81
82 $_SESSION['user_lang'] =
rcube_language_prop($CONFIG['locale_string']);
83 // create session and set session vars
84 if (!$_SESSION['client_id'])
85 {
86 $_SESSION['client_id'] = $sess_id;
87 $_SESSION['user_lang'] =
rcube_language_prop($CONFIG['locale_string']);
88 $_SESSION['auth_time'] = mktime();
89 $_SESSION['auth'] = rcmail_auth_hash($sess_id,
$_SESSION['auth_time']);
90 unset($GLOBALS['_auth']);
91 }
92
93 // set session vars global
94 $sess_auth = $_SESSION['auth'];
95 $sess_user_lang = rcube_language_prop($_SESSION['user_lang']);
$sess_user_lang is used in rcube_label to find the language we want. It
is set in two files save_prefs.inc (which is why my labels change
correctly after saving). The other place it is set is here in main.inc
at line 95. It uses the _SESSION['user_lang'] value. So this _SESSION value
should be correctly filled. Is it? No (or at least it's overridden) Check line 82... with that line
in place it doesn't matter anymore what language you had saved in your
session. When I remove the line everything works as a charm. Is there
someone who can correct this in CVS also...
Sincerely,
Mark
Note: I tried to send this mail earlier today, but from a not-subsribed account. I do hope you all don't receive it twice.