getAcceptLanguage() public static method

The returned array will be in the same order as the input.
Author: Olav Morken, UNINETT AS (olav.morken@uninett.no)
public static getAcceptLanguage ( ) : array
return array An associative array with each language and the score for that language.
Example #1
0
 /**
  * This method returns the preferred language for the user based on the Accept-Language HTTP header.
  *
  * @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;
 }
Example #2
0
 /**
  * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getAcceptLanguage() instead.
  */
 public static function getAcceptLanguage()
 {
     return \SimpleSAML\Utils\HTTP::getAcceptLanguage();
 }
Example #3
0
 /**
  * This function gets the prefered language for the user based on the Accept-Language http header.
  *
  * @return The prefered language based on the Accept-Language http header, or NULL if none of the
  *         languages in the header were available.
  */
 private function getHTTPLanguage()
 {
     $languageScore = \SimpleSAML\Utils\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 precicion 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;
 }