'Initialize the catalog object.
:param locale: the locale identifier or `Locale` object, or `None`
if the catalog is not bound to a locale (which basically
means it\'s a template)
:param domain: the message domain
:param header_comment: the header comment as string, or `None` for the
default header
:param project: the project\'s name
:param version: the project\'s version
:param copyright_holder: the copyright holder of the catalog
:param msgid_bugs_address: the email address or URL to submit bug
reports to
:param creation_date: the date the catalog was created
:param revision_date: the date the catalog was revised
:param last_translator: the name and email of the last translator
:param language_team: the name and email of the language team
:param charset: the encoding to use in the output
:param fuzzy: the fuzzy bit on the catalog header'

def __init__(self, locale=None, domain=None, header_comment=DEFAULT_HEADER, project=None, version=None, copyright_holder=None, msgid_bugs_address=None, creation_date=None, revision_date=None, last_translator=None, language_team=None, charset='utf-8', fuzzy=True):

    self.domain = domain
    if locale:
        locale = Locale.parse(locale)
    self.locale = locale
    self._header_comment = header_comment
    self._messages = odict()
    self.project = (project or 'PROJECT')
    self.version = (version or 'VERSION')
    self.copyright_holder = (copyright_holder or 'ORGANIZATION')
    self.msgid_bugs_address = (msgid_bugs_address or 'EMAIL@ADDRESS')
    self.last_translator = (last_translator or 'FULL    NAME    <EMAIL@ADDRESS>')
    'Name    and    email    address    of    the    last    translator.'
    self.language_team = (language_team or 'LANGUAGE    <LL@li.org>')
    'Name    and    email    address    of    the    language    team.'
    self.charset = (charset or 'utf-8')
    if (creation_date is None):
        creation_date = datetime.now(LOCALTZ)
    elif (isinstance(creation_date, datetime) and (not creation_date.tzinfo)):
        creation_date = creation_date.replace(tzinfo=LOCALTZ)
    self.creation_date = creation_date
    if (revision_date is None):
        revision_date = datetime.now(LOCALTZ)
    elif (isinstance(revision_date, datetime) and (not revision_date.tzinfo)):
        revision_date = revision_date.replace(tzinfo=LOCALTZ)
    self.revision_date = revision_date
    self.fuzzy = fuzzy
    self.obsolete = odict()
    self._num_plurals = None
    self._plural_expr = None
