Edgewall Software
Please note:

The documentation here is generated live, in a way that is neither comprehensive nor 100% correct. We strongly recommend using the HTML documentation included with the source tarballs instead.

babel.messages.pofile

Reading and writing of files in the gettext PO (portable object) format.

see:The Format of PO Files

unescape(string)

Reverse escape the given string.

>>> print unescape('"Say:\\n  \\"hello, world!\\"\\n"')
Say:
  "hello, world!"
<BLANKLINE>
param string:the string to unescape
return:the unescaped string
rtype:str or unicode

denormalize(string)

Reverse the normalization done by the normalize function.

>>> print denormalize(r'''""
... "Say:\n"
... "  \"hello, world!\"\n"''')
Say:
  "hello, world!"
<BLANKLINE>
>>> print denormalize(r'''""
... "Say:\n"
... "  \"Lorem ipsum dolor sit "
... "amet, consectetur adipisicing"
... " elit, \"\n"''')
Say:
  "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
<BLANKLINE>
param string:the string to denormalize
return:the denormalized string
rtype:unicode or str

read_po(fileobj)

Read messages from a gettext PO (portable object) file from the given file-like object and return a Catalog.

>>> from StringIO import StringIO
>>> buf = StringIO('''
... #: main.py:1
... #, fuzzy, python-format
... msgid "foo %(name)s"
... msgstr ""
...
... # A user comment
... #. An auto comment
... #: main.py:3
... msgid "bar"
... msgid_plural "baz"
... msgstr[0] ""
... msgstr[1] ""
... ''')
>>> catalog = read_po(buf)
>>> catalog.revision_date = datetime(2007, 04, 01)
>>> for message in catalog:
...     if message.id:
...         print (message.id, message.string)
...         print ' ', (message.locations, message.flags)
...         print ' ', (message.user_comments, message.auto_comments)
(u'foo %(name)s', '')
  ([(u'main.py', 1)], set([u'fuzzy', u'python-format']))
  ([], [])
((u'bar', u'baz'), ('', ''))
  ([(u'main.py', 3)], set([]))
  ([u'A user comment'], [u'An auto comment'])
param fileobj:the file-like object to read the PO file from
return:an iterator over (message, translation, location) tuples
rtype:iterator

escape(string)

Escape the given string so that it can be included in double-quoted strings in PO files.

>>> escape('''Say:
...   "hello, world!"
... ''')
'"Say:\\n  \\"hello, world!\\"\\n"'
param string:the string to escape
return:the escaped string
rtype:str or unicode

normalize(string, width=76)

Convert a string into a format that is appropriate for .po files.

>>> print normalize('''Say:
...   "hello, world!"
... ''', width=None)
""
"Say:\n"
"  \"hello, world!\"\n"
>>> print normalize('''Say:
...   "Lorem ipsum dolor sit amet, consectetur adipisicing elit, "
... ''', width=32)
""
"Say:\n"
"  \"Lorem ipsum dolor sit "
"amet, consectetur adipisicing"
" elit, \"\n"
param string:the string to normalize
param width:the maximum line width; use None, 0, or a negative number to completely disable line wrapping
return:the normalized string
rtype:unicode

write_po(fileobj, catalog, width=76, no_location=False, omit_header=False, sort_output=False, sort_by_file=False)

Write a gettext PO (portable object) template file for a given message catalog to the provided file-like object.

>>> catalog = Catalog()
>>> catalog.add(u'foo %(name)s', locations=[('main.py', 1)],
...             flags=('fuzzy',))
>>> catalog.add((u'bar', u'baz'), locations=[('main.py', 3)])
>>> from StringIO import StringIO
>>> buf = StringIO()
>>> write_po(buf, catalog, omit_header=True)
>>> print buf.getvalue()
#: main.py:1
#, fuzzy, python-format
msgid "foo %(name)s"
msgstr ""
<BLANKLINE>
#: main.py:3
msgid "bar"
msgid_plural "baz"
msgstr[0] ""
msgstr[1] ""
<BLANKLINE>
<BLANKLINE>
param fileobj:the file-like object to write to
param catalog:the Catalog instance
param width:the maximum line width for the generated output; use None, 0, or a negative number to completely disable line wrapping
param no_location:
 do not emit a location comment for every message
param omit_header:
 do not include the msgid "" entry at the top of the output


See ApiDocs/0.8, Documentation

Last modified 15 months ago Last modified on Dec 10, 2015 6:25:47 AM