/** * Setter for system user object * * @param rcube_user Current user instance */ public function set_user($user) { parent::set_user($user); $lang = $this->language_prop($this->config->get('language', $_SESSION['language'])); $_SESSION['language'] = $this->user->language = $lang; // set localization setlocale(LC_ALL, $lang . '.utf8', $lang . '.UTF-8', 'en_US.utf8', 'en_US.UTF-8'); // workaround for http://bugs.php.net/bug.php?id=18556 if (PHP_VERSION_ID < 50500 && in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) { setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8'); } }
/** * Setter for system user object * * @param rcube_user Current user instance */ public function set_user($user) { parent::set_user($user); $lang = $this->language_prop($this->config->get('language', $_SESSION['language'])); $_SESSION['language'] = $this->user->language = $lang; // set localization setlocale(LC_ALL, $lang . '.utf8', $lang . '.UTF-8', 'en_US.utf8', 'en_US.UTF-8'); // Workaround for http://bugs.php.net/bug.php?id=18556 // Also strtoupper/strtolower and other methods are locale-aware // for these locales it is problematic (#1490519) if (in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) { setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8', 'C'); } }