Index: translate/storage/cpo.py =================================================================== --- translate/storage/cpo.py (revision 8228) +++ translate/storage/cpo.py (working copy) @@ -505,6 +505,10 @@ line = -1 gpo.po_message_add_filepos(self._gpo_message, file, line) + def setcontext(self, context): + """Sets the context message""" + gpo.po_message_set_msgctxt(self._gpo_message, context) + def getcontext(self): msgctxt = gpo.po_message_msgctxt(self._gpo_message) msgidcomment = self._extract_msgidcomments() Index: translate/storage/pypo.py =================================================================== --- translate/storage/pypo.py (revision 8228) +++ translate/storage/pypo.py (working copy) @@ -740,6 +740,10 @@ """Get the message context.""" return unquotefrompo(self.msgctxt) + self._extract_msgidcomments() + def setcontext(self, context): + """Sets the message context""" + self.msgctxt = quoteforpo(context) + def getid(self): """Returns a unique identifier for this unit.""" context = self.getcontext() Index: translate/storage/base.py =================================================================== --- translate/storage/base.py (revision 8228) +++ translate/storage/base.py (working copy) @@ -159,6 +159,10 @@ def getcontext(self): """Get the message context.""" return "" + + def setcontext(self, context): + """Sets the message context""" + pass def getnotes(self, origin=None): """Returns all notes about this unit. Index: translate/storage/test_po.py =================================================================== --- translate/storage/test_po.py (revision 8228) +++ translate/storage/test_po.py (working copy) @@ -130,6 +130,16 @@ unit.source = u"Goeiemôre" assert not unit.isheader() + def test_context(self): + unit = self.UnitClass("Message") + assert unit.getcontext() == u"" + + unit.setcontext("context message") + assert unit.getcontext() == u"context message" + + unit.setcontext("") + assert unit.getcontext() == u"" + class TestPOFile(test_base.TestTranslationStore): StoreClass = po.pofile def poparse(self, posource):