# HG changeset patch # User palgarvio # Date 1229559587 0 # Node ID 14bebc7817eb02b083393e7eb09c0847b2c4553c # Parent 53c68c594b5fd3ffac1e0bd3bb70e5da045333b8 Include patch from Asheesh Laroia. Fixes #45. diff --git a/babel/messages/pofile.py b/babel/messages/pofile.py --- a/babel/messages/pofile.py +++ b/babel/messages/pofile.py @@ -396,6 +396,9 @@ def _write_message(message, prefix=''): if isinstance(message.id, (list, tuple)): + if message.context: + _write('%smsgctxt %s\n' % (prefix, + _normalize(message.context, prefix))) _write('%smsgid %s\n' % (prefix, _normalize(message.id[0], prefix))) _write('%smsgid_plural %s\n' % ( prefix, _normalize(message.id[1], prefix) @@ -410,6 +413,9 @@ prefix, idx, _normalize(string, prefix) )) else: + if message.context: + _write('%smsgctxt %s\n' % (prefix, + _normalize(message.context, prefix))) _write('%smsgid %s\n' % (prefix, _normalize(message.id, prefix))) _write('%smsgstr %s\n' % ( prefix, _normalize(message.string or '', prefix) diff --git a/babel/messages/tests/pofile.py b/babel/messages/tests/pofile.py --- a/babel/messages/tests/pofile.py +++ b/babel/messages/tests/pofile.py @@ -163,6 +163,12 @@ message = catalog.get('bar', context='Menu') self.assertEqual('Menu', message.context) + # And verify it pass through write_po + out_buf = StringIO() + pofile.write_po(out_buf, catalog, omit_header=True) + assert out_buf.getvalue().strip() == buf.getvalue().strip(), \ + out_buf.getvalue() + def test_singlular_plural_form(self): buf = StringIO(r'''msgid "foo" msgid_plural "foo"