self.offset = lineno
if keyword in ['msgid', 'msgid_plural']:
+ self.in_msgctxt = False
self.in_msgid = True
self.messages.append(_NormalizedString(arg))
self.translations.append([int(idx), _NormalizedString(msg)])
else:
self.translations.append([0, _NormalizedString(arg)])
+
elif keyword == 'msgctxt':
+ self.in_msgctxt = True
self.context = _NormalizedString(arg)
def _process_string_continuation_line(self, line, lineno):
self.assertEqual(message.context, "other")
self.assertEqual(message.string, "Voh")
+ def test_multiline_context(self):
+ buf = StringIO('''
+msgctxt "a really long "
+"message context "
+"why?"
+msgid "mid"
+msgstr "mst"
+ ''')
+ catalog = pofile.read_po(buf)
+ self.assertEqual(1, len(catalog))
+ message = catalog.get('mid', context="a really long message context why?")
+ assert message is not None
+ self.assertEqual("a really long message context why?", message.context)
+
def test_with_context_two(self):
buf = BytesIO(b'''msgctxt "Menu"
msgid "foo"