Example #1
0
 /**
  * Looks for the best default language available and returns it
  *
  * A language cookie and HTTP Accept-Language headers are taken into account.
  *
  *     $lang = Lang::default();
  *
  * @return  string  language key, e.g. "en", "fr", "nl", etc.
  * @uses    Lang::available_languages
  * @uses    Cookie::get
  * @uses    Lang::$cookie
  * @uses    Request::accept_lang
  * @uses    Lang::$default
  */
 public static function find_default()
 {
     // All available languages
     $available_languages = Lang::available_languages();
     // Look for language cookie first
     if ($lang = Cookie::get(Lang::$cookie)) {
         if (isset($available_languages[$lang])) {
             // Valid language found in cookie
             return $lang;
         }
         // Delete cookie with invalid language
         Cookie::delete(Lang::$cookie);
     }
     // Parse HTTP Accept-Language headers
     foreach (Request::accepted_languages() as $lang => $quality) {
         if (isset($available_languages[$lang])) {
             // Return the first language found (the language with the highest quality)
             return $lang;
         }
     }
     // Return the hard-coded default language as final fallback
     return Lang::$default;
 }