/** * Sets a new default locale which will be used when no locale can be detected * If provided you can set a quality between 0 and 1 (or 2 and 100) * which represents the percent of quality the browser * requested within HTTP * * @param string|JO_Locale $locale Locale to set * @param float $quality The quality to set from 0 to 1 * @throws JO_Locale_Exception When a autolocale was given * @throws JO_Locale_Exception When a unknown locale was given * @return void */ public static function setDefault($locale, $quality = 1) { if ($locale === 'auto' or $locale === 'root' or $locale === 'default' or $locale === 'environment' or $locale === 'browser') { require_once 'JO/Exception.php'; throw new JO_Exception('Only full qualified locales can be used as default!'); } if ($quality < 0.1 or $quality > 100) { require_once 'JO/Exception.php'; throw new JO_Exception("Quality must be between 0.1 and 100"); } if ($quality > 1) { $quality /= 100; } $locale = self::_prepareLocale($locale); if (isset(self::$_localeData[(string) $locale]) === true) { self::$_default = array((string) $locale => $quality); } else { $elocale = explode('_', (string) $locale); if (isset(self::$_localeData[$elocale[0]]) === true) { self::$_default = array($elocale[0] => $quality); } else { require_once 'JO/Exception.php'; throw new JO_Exception("Unknown locale '" . (string) $locale . "' can not be set as default!"); } } self::$_auto = self::getBrowser() + self::getDefault(); }