PMA\libraries\LanguageManager::selectLanguage PHP Метод

selectLanguage() публичный Метод

Activates language based on configuration, user preferences or browser
public selectLanguage ( ) : PMA\libraries\Language
Результат PMA\libraries\Language
    public function selectLanguage()
    {
        // check forced language
        if (!empty($GLOBALS['cfg']['Lang'])) {
            $lang = $this->getLanguage($GLOBALS['cfg']['Lang']);
            if ($lang !== false) {
                return $lang;
            }
            $this->_lang_failed_cfg = true;
        }
        // Don't use REQUEST in following code as it might be confused by cookies
        // with same name. Check user requested language (POST)
        if (!empty($_POST['lang'])) {
            $lang = $this->getLanguage($_POST['lang']);
            if ($lang !== false) {
                return $lang;
            }
            $this->_lang_failed_request = true;
        }
        // check user requested language (GET)
        if (!empty($_GET['lang'])) {
            $lang = $this->getLanguage($_GET['lang']);
            if ($lang !== false) {
                return $lang;
            }
            $this->_lang_failed_request = true;
        }
        // check previous set language
        if (!empty($_COOKIE['pma_lang'])) {
            $lang = $this->getLanguage($_COOKIE['pma_lang']);
            if ($lang !== false) {
                return $lang;
            }
            $this->_lang_failed_cookie = true;
        }
        $langs = $this->availableLanguages();
        // try to find out user's language by checking its HTTP_ACCEPT_LANGUAGE variable;
        $accepted_languages = PMA_getenv('HTTP_ACCEPT_LANGUAGE');
        if ($accepted_languages) {
            foreach (explode(',', $accepted_languages) as $header) {
                foreach ($langs as $language) {
                    if ($language->matchesAcceptLanguage($header)) {
                        return $language;
                    }
                }
            }
        }
        // try to find out user's language by checking its HTTP_USER_AGENT variable
        $user_agent = PMA_getenv('HTTP_USER_AGENT');
        if (!empty($user_agent)) {
            foreach ($langs as $language) {
                if ($language->matchesUserAgent($user_agent)) {
                    return $language;
                }
            }
        }
        // Didn't catch any valid lang : we use the default settings
        if (isset($langs[$GLOBALS['cfg']['DefaultLang']])) {
            return $langs[$GLOBALS['cfg']['DefaultLang']];
        }
        // Fallback to English
        return $langs['en'];
    }