else:
translations.append([0, msg])
elif line.startswith('msgctxt'):
+ if messages:
+ _add_message()
in_msgid[0] = in_msgstr[0] = False
context.append(line[7:].lstrip())
elif line.startswith('"'):
assert out_buf.getvalue().strip() == buf.getvalue().strip(), \
out_buf.getvalue()
+ def test_with_context_two(self):
+ buf = StringIO(r'''msgctxt "Menu"
+msgid "foo"
+msgstr "Voh"
+
+msgctxt "Mannu"
+msgid "bar"
+msgstr "Bahr"
+''')
+ catalog = pofile.read_po(buf, ignore_obsolete=True)
+ self.assertEqual(2, len(catalog))
+ message = catalog.get('foo', context='Menu')
+ self.assertEqual('Menu', message.context)
+ message = catalog.get('bar', context='Mannu')
+ self.assertEqual('Mannu', 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"