public static function SetUser($user) { if (isset($_GET["lang"])) { if (strrpos("|" . LANGUAGES_AVAILABLE . "|", ";" . $_GET["lang"] . "|") !== false) { Session::SetLanguageCode($_GET["lang"]); } } else { if (Session::GetLanguageCode() == null) { Session::SetLanguageCode(defined('LANGUAGE_CODE') ? LANGUAGE_CODE : self::GetVersion2DefaultLanguageCode()); } } $languageFileName = self::LocalPath("languages/" . Session::GetLanguageCode() . ".xml"); $languageFileNameAndDate = $languageFileName . "_" . filemtime($languageFileName); // some caching logic for language strings $previousUser = self::GetUser(); $loadStrings = $previousUser || $user || Session::GetLanguageFile() != $languageFileNameAndDate; if (!Session::GetLanguageStrings()) { $loadStrings = true; } Session::SetDisplayedUser($user); if ($loadStrings) { Session::SetLanguageStrings(Helper::GetLanguageStrings($user ? $user->ID : 0)); Session::SetLanguageFile($languageFileNameAndDate); } }