SimpleSAML\Locale\Language::getHTTPLanguage PHP Method

getHTTPLanguage() private method

This method returns the preferred language for the user based on the Accept-Language HTTP header.
private getHTTPLanguage ( ) : string
return string The preferred language based on the Accept-Language HTTP header, or null if none of the languages in the header is available.
    private function getHTTPLanguage()
    {
        $languageScore = HTTP::getAcceptLanguage();
        // for now we only use the default language map. We may use a configurable language map in the future
        $languageMap = self::$defaultLanguageMap;
        // find the available language with the best score
        $bestLanguage = null;
        $bestScore = -1.0;
        foreach ($languageScore as $language => $score) {
            // apply the language map to the language code
            if (array_key_exists($language, $languageMap)) {
                $language = $languageMap[$language];
            }
            if (!in_array($language, $this->availableLanguages, true)) {
                // skip this language - we don't have it
                continue;
            }
            /* Some user agents use very limited precision of the quality value, but order the elements in descending
             * order. Therefore we rely on the order of the output from getAcceptLanguage() matching the order of the
             * languages in the header when two languages have the same quality.
             */
            if ($score > $bestScore) {
                $bestLanguage = $language;
                $bestScore = $score;
            }
        }
        return $bestLanguage;
    }