refreshLanguage(); return $tikilib->set_user_preference($user, $prefName, $localeIdentifier); } else { return false; } } if ($prefs['feature_multilingual'] != 'y') { // change_language depends on feature_multilingual. $prefs['change_language'] = 'n'; } if ($prefs['change_language'] == 'y') { // $noSwitchLang = true; // Uncomment to disable switchLang if (isset($_GET['switchLang']) && ! isset($noSwitchLang)) { // Special feature to allow creating Tiki links that also permanently switch the language of the user following the link. // Tiki does not create such links. See http://doc.tiki.org/i18n+Admin#Goodies setLanguage($_GET['switchLang']); } elseif ($prefs['feature_detect_language'] == 'y' and ! $tikilib->userHasPreference('language')) { // Detect browser language $browser_language = detect_browser_language(); if (isValidLocale($browser_language)) { $prefs['language'] = $browser_language; } } } elseif (! empty($section) && $section == 'admin' && ! empty($prefs['language_admin'])) { $prefs['language'] = $prefs['language_admin']; } else { $prefs['language'] = $prefs['site_language']; } if (! isValidLocale($prefs['language'])) { // Override broken user locales setLanguage($prefs['site_language']); } TikiLib::lib('multilingual')->setupBiDi();