Example #1
0
 /**
  * Checks if a locale identifier is a real locale or not
  * Examples:
  * "en_XX" refers to "en", which returns true
  * "XX_yy" refers to "root", which returns false
  *
  * @param  string|Zend_Locale  $locale  Locale to check for
  * @param  boolean             $create  If true, create a default locale, if $locale is empty
  * @return false|string   false if given locale is not a locale, else the locale identifier is returned
  */
 public static function isLocale($locale, $create = false)
 {
     if (empty($locale) and $create === true) {
         $locale = new self();
     }
     if ($locale instanceof Zend_Locale) {
         return $locale->toString();
     }
     if (!is_string($locale)) {
         return false;
     }
     if (empty(self::$_auto)) {
         $temp = new self($locale);
         self::$_auto = $temp->getDefault(null, false);
         self::$_browser = $temp->getDefault(self::BROWSER, false);
         self::$_environment = $temp->getDefault(self::ENVIRONMENT, false);
     }
     if ($locale == 'auto') {
         $locale = self::$_auto;
     }
     if ($locale == 'browser') {
         $locale = self::$_browser;
     }
     if ($locale == 'environment') {
         $locale = self::$_environment;
     }
     if (is_array($locale)) {
         $locale = key($locale);
     }
     if (array_key_exists($locale, self::$_localeData)) {
         return $locale;
     } else {
         $locale = explode('_', $locale);
         if (array_key_exists($locale[0], self::$_localeData)) {
             return $locale[0];
         }
     }
     return false;
 }