Sets a list of the available locales to use for displaying
        the locale information for.  This provides a way to filter the
        interface for only locales that you care about.
        
        :param     locales | [<str>, ..]

def setAvailableLocales(self, locales):
        """
        Sets a list of the available locales to use for displaying
        the locale information for.  This provides a way to filter the
        interface for only locales that you care about.
        
        :param     locales | [<str>, ..]
        """
        try:
            expr = re.compile('[a-z]+_[A-Z]+')
            babel_locales = []
            for locale in locales:
                if not expr.match(locale):
                    continue
                
                try:
                    babel_locale = babel.Locale.parse(str(locale))
                except (babel.UnknownLocaleError, StandardError):
                    continue
                
                if babel_locale.territory and babel_locale.language:
                    babel_locales.append(babel_locale)
            
            babel_locales.sort(key=str)
        except ImportError:
            babel_locales = []
        
        self._availableLocales = babel_locales
        self.setDirty()