/**
  * $lng initialisation
  */
 protected static function initLanguage()
 {
     global $ilUser, $ilSetting, $rbacsystem;
     if (!ilSession::get("lang")) {
         if ($_GET['lang']) {
             $_GET['lang'] = $_GET['lang'];
         } else {
             if (is_object($ilUser)) {
                 $_GET['lang'] = $ilUser->getPref('language');
             }
         }
     }
     if (isset($_POST['change_lang_to']) && $_POST['change_lang_to'] != "") {
         $_GET['lang'] = ilUtil::stripSlashes($_POST['change_lang_to']);
     }
     // prefer personal setting when coming from login screen
     // Added check for ilUser->getId > 0 because it is 0 when the language is changed and the terms of service should be displayes (Helmut Schottm��ller, 2006-10-14)
     if (is_object($ilUser) && $ilUser->getId() != ANONYMOUS_USER_ID && $ilUser->getId() > 0) {
         ilSession::set('lang', $ilUser->getPref('language'));
     }
     ilSession::set('lang', isset($_GET['lang']) && $_GET['lang'] ? $_GET['lang'] : ilSession::get('lang'));
     // check whether lang selection is valid
     require_once "./Services/Language/classes/class.ilLanguage.php";
     $langs = ilLanguage::getInstalledLanguages();
     if (!in_array(ilSession::get('lang'), $langs)) {
         if (is_object($ilSetting) && $ilSetting->get('language') != '') {
             ilSession::set('lang', $ilSetting->get('language'));
         } else {
             ilSession::set('lang', $langs[0]);
         }
     }
     $_GET['lang'] = ilSession::get('lang');
     $lng = new ilLanguage(ilSession::get('lang'));
     self::initGlobal('lng', $lng);
     if (is_object($rbacsystem)) {
         $rbacsystem->initMemberView();
     }
 }