'"The price of inaction is far greater than the cost of making a mistake." Meister Eckhart', 'en' => '"The price of inaction is far greater than the cost of making a mistake." Meister Eckhart'); $l_footer_sitemap = array('ro' => 'Harta paginii', 'en' => 'Sitemap'); $l_sidebarleft_research = array('ro' => 'Cercetare', 'en' => 'Research'); $l_sidebarleft_links = array('ro' => 'Linkuri', 'en' => 'Links'); $l_sidebarright_languages = array('ro' => 'Limbi', 'en' => 'Languages'); $l_sidebarright_partners = array('ro' => 'Parteneri', 'en' => 'Partners'); $l_abstract_title = array('ro' => 'Rezumat', 'en' => 'Abstract'); $l_objectives_title = array('ro' => 'Obiective', 'en' => 'Objectives'); $l_partners_title = array('ro' => 'Partenerii nostri', 'en' => 'Partners'); $l_annualreports_title = array('ro' => 'Rapoarte anuale', 'en' => 'Annual reports'); $l_contact_title = array('ro' => 'Contact', 'en' => 'Contact'); $l_news_title = array('ro' => 'Noutati si evenimente', 'en' => 'News and events'); class Localization { public static function DetectLanguage() { global $language; global $LANGUAGES; //$url = Misc::CurrentURL(); //$url = Misc::ReverseStringSearch($url, '?'); // Handle language // Get URL parameters $query = explode("&", $_SERVER['QUERY_STRING']); if (count($query) > 0) { // Try to get the language from the query foreach($query as $q) { if (strlen($q) > 0) { list($key, $value) = explode("=", $q); if(strtolower($key) == strtolower(LANGUAGEPARAM)) { $language = strtolower($value); if (!in_array($language, $LANGUAGES)) { Log::Add('Language change', 'Invalid language "'.$value.'"'); $language = DEFAULT_LANG; } // Change language CookieHandler::SetLanguage(strtolower($language)); return; } } } } // Otherwise load from the cookies if (CookieHandler::IsLanguageSet()) { $cookieLanguage = CookieHandler::GetLanguage(); if (in_array($cookieLanguage, $LANGUAGES)) { $language = $cookieLanguage; return; } else { Log::Add('Language change', 'Invalid language from cookie "'.$value.'"'); } } $language = DEFAULT_LANG; } public static function ApplyLanguage() { if (!SessionHandler::IsSetLanguage()) { if (!CookieHandler::IsSetLanguage()) { $lang = DEFAULT_LANG; SessionHandler::SetLanguage(strtolower($lang)); CookieHandler::SetLanguage(strtolower($lang)); } else { $lang = CookieHandler::GetLanguage(); global $LANGUAGES; if (!in_array($lang, $LANGUAGES)) { Log::Add('Language change', 'Invalid language set in cookie: "'.$value.'"'); $lang = DEFAULT_LANG; } SessionHandler::SetLanguage(strtolower($lang)); CookieHandler::SetLanguage(strtolower($lang)); } } } // Displays text in the current language. // If there is no tranlation it falls back to the default language public static function Localize($phrase) { if($phrase == null) { return ''; } global $language; if (array_key_exists($language, $phrase)) { echo($phrase[$language]); } else { echo($phrase[DEFAULT_LANG]); } } // Displays text in the current language. // If there is no tranlation it falls back to the default language public static function GetLocalizedValue($phrase) { if($phrase == null) { return ''; } global $language; if (array_key_exists($language, $phrase)) { return $phrase[$language]; } else { return $phrase[DEFAULT_LANG]; } } public static function LocalizePage($rootName, $generateTitle = true) { if ($generateTitle) { global $pageTitle; echo("

$pageTitle

"); } global $language; $localizedFile = 'translations/'.$rootName.'.'.$language; if (file_exists($localizedFile)) { include($localizedFile); } else { $fallback1 = 'translations/'.$rootName.'.'.DEFAULT_LANG; if (file_exists($fallback1)) { include($fallback1); } else { $fallback2 = 'translations/'.$rootName; if (file_exists($fallback2)) { include($fallback2); } } } } } ?>