Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
Functions | Variables
babel.messages.mofile Namespace Reference

Functions

Catalog read_mo (SupportsRead[bytes] fileobj)
 
None write_mo (SupportsWrite[bytes] fileobj, Catalog catalog, bool use_fuzzy=False)
 

Variables

int LE_MAGIC = 0x950412de
 
int BE_MAGIC = 0xde120495
 

Detailed Description

    babel.messages.mofile
    ~~~~~~~~~~~~~~~~~~~~~

    Writing of files in the ``gettext`` MO (machine object) format.

    :copyright: (c) 2013-2025 by the Babel Team.
    :license: BSD, see LICENSE for more details.

Function Documentation

◆ read_mo()

Catalog babel.messages.mofile.read_mo ( SupportsRead[bytes]  fileobj)
Read a binary MO file from the given file-like object and return a
corresponding `Catalog` object.

:param fileobj: the file-like object to read the MO file from

:note: The implementation of this function is heavily based on the
       ``GNUTranslations._parse`` method of the ``gettext`` module in the
       standard library.

◆ write_mo()

None babel.messages.mofile.write_mo ( SupportsWrite[bytes]  fileobj,
Catalog  catalog,
bool   use_fuzzy = False 
)
Write a catalog to the specified file-like object using the GNU MO file
format.

>>> import sys
>>> from babel.messages import Catalog
>>> from gettext import GNUTranslations
>>> from io import BytesIO

>>> catalog = Catalog(locale='en_US')
>>> catalog.add('foo', 'Voh')
<Message ...>
>>> catalog.add((u'bar', u'baz'), (u'Bahr', u'Batz'))
<Message ...>
>>> catalog.add('fuz', 'Futz', flags=['fuzzy'])
<Message ...>
>>> catalog.add('Fizz', '')
<Message ...>
>>> catalog.add(('Fuzz', 'Fuzzes'), ('', ''))
<Message ...>
>>> buf = BytesIO()

>>> write_mo(buf, catalog)
>>> x = buf.seek(0)
>>> translations = GNUTranslations(fp=buf)
>>> if sys.version_info[0] >= 3:
...     translations.ugettext = translations.gettext
...     translations.ungettext = translations.ngettext
>>> translations.ugettext('foo')
u'Voh'
>>> translations.ungettext('bar', 'baz', 1)
u'Bahr'
>>> translations.ungettext('bar', 'baz', 2)
u'Batz'
>>> translations.ugettext('fuz')
u'fuz'
>>> translations.ugettext('Fizz')
u'Fizz'
>>> translations.ugettext('Fuzz')
u'Fuzz'
>>> translations.ugettext('Fuzzes')
u'Fuzzes'

:param fileobj: the file-like object to write to
:param catalog: the `Catalog` instance
:param use_fuzzy: whether translations marked as "fuzzy" should be included
                  in the output