 
     //--------------------------------------------------------------------------
     //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    private var _defaultLocale:String;
+
+    public function get defaultLocale():String
+    {
+        return _defaultLocale;
+    }
+
+    public function set defaultLocale(value:String):void
+    {
+        if (value == _defaultLocale) return;
+
+        _defaultLocale = value;
+
+        if (locales == null)
+        {
+            locales = [_defaultLocale];
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
     //  Methods
     //
     //--------------------------------------------------------------------------
 
+    public function getLocale():String
+    {
+        return locales && locales.length > 0 ? locales[0] : null;
+    }
+
     public function setLocale(locale:String):void
     {
+        if (locale == null)
+            locale = _defaultLocale;
+
         setLocales([locale]);
     }
 

        locales = chain;

        dispatchEvent(new Event(Event.CHANGE));
    }

    public function addSource(source:Source):void

    }

    private var bundleMap:Object = {};

    private var availableLocales:Array = [];

    [Bindable(event="change")]
    public function getString(bundle:String, key:String, params:Array=null):String
