# HG changeset patch # User palgarvio # Date 1229559587 0 # Node ID 322b257aeb3cbb89a48fd30772f2b788f28fbe1c # Parent 38feb97d4934092231b5dbc93a01bca3781b086b 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"