$smarty->refreshLanguage(); return $tikilib->set_user_preference($user, 'language', $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; } } } else { $prefs['language'] = $prefs['site_language']; } if (!isValidLocale($prefs['language'])) { // Override broken user locales setLanguage($prefs['site_language']); } TikiLib::lib('multilingual')->setupBiDi();
$lang_parse = array(); preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/i', $idiomas, $lang_parse); if (count($lang_parse[1]) == 0) { return $default_lang; } foreach ($lang_parse as $lang) { $lang = strtoupper($lang); if (in_array($lang, $idiomas)) { return $lang; } } return $default_lang; } session_start(); if (!isset($_SESSION["lang"])) { $_SESSION["lang"] = detect_browser_language($default_lang); } if (isset($_GET["lang"])) { $_SESSION["lang"] = $_GET["lang"]; } $translations = ""; function TRADUCCION($texto) { //usamos esta global unicamente por optimizacion, para que una vez seteada no tenga que volver a setearse. Como máximo //se setearía una vez por página. global $translations; $idioma = $_SESSION["lang"]; if ($translations == "") { $raw = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/backoffice/multilenguas/" . $idioma . ".json"); $translations = json_decode($raw, true); }
require_once api_get_path(LIBRARY_PATH) . 'fileManage.lib.php'; require_once 'install.lib.php'; // The function api_get_setting() might be called within the installation scripts. // We need to provide some limited support for it through initialization of the // global array-type variable $_setting. $_setting = array('platform_charset' => 'UTF-8', 'server_type' => 'production', 'permissions_for_new_directories' => '0770', 'permissions_for_new_files' => '0660', 'stylesheets' => 'chamilo'); // Determination of the language during the installation procedure. if (!empty($_POST['language_list'])) { $search = array('../', '\\0'); $install_language = str_replace($search, '', urldecode($_POST['language_list'])); Session::write('install_language', $install_language); } elseif (isset($_SESSION['install_language']) && $_SESSION['install_language']) { $install_language = $_SESSION['install_language']; } else { // Trying to switch to the browser's language, it is covenient for most of the cases. $install_language = detect_browser_language(); } // Language validation. if (!array_key_exists($install_language, get_language_folder_list())) { $install_language = 'english'; } $installationGuideLink = '../../documentation/installation_guide.html'; // Loading language files. require api_get_path(SYS_LANG_PATH) . 'english/trad4all.inc.php'; if ($install_language != 'english') { include_once api_get_path(SYS_LANG_PATH) . $install_language . '/trad4all.inc.php'; switch ($install_language) { case 'french': $installationGuideLink = '../../documentation/installation_guide_fr_FR.html'; break; case 'spanish':
/** +---------------------------------------------------------- * 语言检查 * 检查浏览器支持语言,并自动加载语言包 +---------------------------------------------------------- * @access private +---------------------------------------------------------- * @return void +---------------------------------------------------------- */ private function checkLanguage() { //检测浏览器支持语言 $langSet = detect_browser_language(); // setlocale操作比较费时,暂时屏蔽 //setlocale(LC_ALL, $langSet); // 定义当前语言 define('LANG_SET', $langSet); // 加载语言类 import("Think.Util.Language"); // 加载框架语言包 if (!file_exists(THINK_PATH . '/Lang/' . LANG_SET . '.php')) { Language::load(THINK_PATH . '/Lang/' . LANG_SET . '.php'); } else { Language::load(THINK_PATH . '/Lang/' . C('DEFAULT_LANGUAGE') . '.php'); } // 读取项目(公共)语言包 if (file_exists(LANG_PATH . LANG_SET . '.php')) { Language::load(LANG_PATH . LANG_SET . '.php'); } // 读取当前模块的语言包 if (file_exists(LANG_PATH . strtolower(MODULE_NAME) . '_' . LANG_SET . '.php')) { Language::load(LANG_PATH . strtolower(MODULE_NAME) . '_' . LANG_SET . '.php'); } // 缓存语言变量 L(Language::$_lang); return; }