'Return the display name of the locale using the given locale.
The display name will include the language, territory, script, and
variant, if those are specified.
>>> Locale(\'zh\', \'CN\', script=\'Hans\').get_display_name(\'en\')
u\'Chinese (Simplified Han, China)\'
:param locale: the locale to use
:return: the display name'

def get_display_name(self, locale=None):

    if (locale is None):
        locale = self
    locale = Locale.parse(locale)
    retval = locale.languages.get(self.language)
    if (self.territory or self.script or self.variant):
        details = []
        if self.script:
            details.append(locale.scripts.get(self.script))
        if self.territory:
            details.append(locale.territories.get(self.territory))
        if self.variant:
            details.append(locale.variants.get(self.variant))
        details = filter(None, details)
        if details:
            retval += ('    (%s)' % u',    '.join(details))
    return retval
