'Load translations from the given directory.
:param dirname: the directory containing the ``MO`` files
:param locales: the list of locales in order of preference (items in
this list can be either `Locale` objects or locale
strings)
:param domain: the message domain
:return: the loaded catalog, or a ``NullTranslations`` instance if no
matching translations were found
:rtype: `Translations`'

@classmethod
def load(cls, dirname=None, locales=None, domain=DEFAULT_DOMAIN):

    if (locales is not None):
        if (not isinstance(locales, (list, tuple))):
            locales = [locales]
        locales = [str(l) for l in locales]
    if (not domain):
        domain = cls.DEFAULT_DOMAIN
    filename = gettext.find(domain, dirname, locales)
    if (not filename):
        return gettext.NullTranslations()
    with open(filename, 'rb') as fp:
        return cls(fileobj=fp, domain=domain)
