private function __construct() { global $ExistingLocales; // defined in bootstrap.php global $ExistingLangs; // defined in bootstrap.php // ****************************************************************************************** // Current language // ****************************************************************************************** $this->curLang = Route::getLangFromUrl(); $this->curLangMaj = strtoupper($this->curLang); // ****************************************************************************************** // Text translation // ****************************************************************************************** // done with mo file // ****************************************************************************************** // URL translation // ****************************************************************************************** if (TC_ENVIRONMENT != 'dev' && isset($_SESSION["i18n_urls"])) { $I18N_URL = $_SESSION["i18n_urls"]; $I18N_URL_INV = $_SESSION["i18n_urls_inv"]; $I18N_TEXTS = $_SESSION["i18n_texts"]; } else { // translations $I18N_TEXTS = array(); foreach ($ExistingLocales as $l => $locale) { $filename = TC_ROOTDIR . "/lang/" . $locale . "/LC_MESSAGES/default.mo"; $I18N_TEXTS[$l] = $this->loadPOfile($filename); } // save in session $_SESSION["i18n_texts"] = $I18N_TEXTS; // URLs $I18N_URL = array(); $I18N_URL_INV = array(); foreach ($ExistingLangs as $l) { $I18N_URL[$l] = array(); $L = strtoupper($l); // open translations file self::readTransfile(TC_ROOTDIR . "/lang/urls_" . $L . ".txt", $I18N_URL[$l]); $I18N_URL_INV[$l] = array(); foreach ($I18N_URL[$l] as $k => $v) { $I18N_URL_INV[$l][$v] = $k; } } // save in session $_SESSION["i18n_urls"] = $I18N_URL; $_SESSION["i18n_urls_inv"] = $I18N_URL_INV; } }