add getLocales() to return the list of available locales
authorChuck Hagenbuch <chuck@horde.org>
Sat, 30 May 2009 15:51:12 +0000 (11:51 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Sat, 30 May 2009 15:51:12 +0000 (11:51 -0400)
framework/Date_Parser/lib/Horde/Date/Parser.php

index 58de231..24d0edf 100644 (file)
@@ -34,4 +34,22 @@ class Horde_Date_Parser
         return new Horde_Date_Parser_Locale_Base($args);
     }
 
+    /**
+     * Return a list of available locales
+     */
+    public static function getLocales()
+    {
+        $dir = dirname(__FILE__) . '/Parser/Locale';
+        $locales = array();
+        foreach (new DirectoryIterator($dir) as $f) {
+            if ($f->isFile()) {
+                $locale = str_replace('.php', '', $f->getFilename());
+                $locale = preg_replace_callback('/([A-Z][a-z]*)([A-Z].*)?/', create_function('$m', 'if (!isset($m[2])) { return strtolower($m[1]); } else { return strtolower($m[1]) . "_" . strtoupper($m[2]); }'), $locale);
+                $locales[] = $locale;
+            }
+        }
+
+        return $locales;
+    }
+
 }