From: Jeroen Ruigrok van der Werven Date: Fri, 19 Feb 2010 13:08:56 +0000 (+0000) Subject: Make sure to only strip on the first occurence of ]. X-Git-Tag: 1.0~249 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d0d29b11d88438bbff135bafd9643785104d555;p=thirdparty%2Fbabel.git Make sure to only strip on the first occurence of ]. Submitted by: Benoit Boissinot --- diff --git a/babel/messages/pofile.py b/babel/messages/pofile.py index 1890294c..94bf122c 100644 --- a/babel/messages/pofile.py +++ b/babel/messages/pofile.py @@ -187,7 +187,7 @@ def read_po(fileobj, locale=None, domain=None, ignore_obsolete=False): in_msgstr[0] = True msg = line[6:].lstrip() if msg.startswith('['): - idx, msg = msg[1:].split(']') + idx, msg = msg[1:].split(']', 1) translations.append([int(idx), msg.lstrip()]) else: translations.append([0, msg]) diff --git a/babel/messages/tests/pofile.py b/babel/messages/tests/pofile.py index 42580ecf..f28648e6 100644 --- a/babel/messages/tests/pofile.py +++ b/babel/messages/tests/pofile.py @@ -200,7 +200,18 @@ msgstr[1] "Vohs"''') # This is a bad po, ja_JP only uses msgstr[0] self.assertEqual(1, catalog.num_plurals) message = catalog['foo'] self.assertEqual(1, len(message.string)) - + + def test_plural_with_square_brackets(self): + buf = StringIO(r'''msgid "foo" +msgid_plural "foo" +msgstr[0] "Voh [text]" +msgstr[1] "Vohs [text]"''') + catalog = pofile.read_po(buf, locale='nb_NO') + self.assertEqual(1, len(catalog)) + self.assertEqual(2, catalog.num_plurals) + message = catalog['foo'] + self.assertEqual(2, len(message.string)) + def test_more_than_two_plural_forms(self): buf = StringIO(r'''msgid "foo" msgid_plural "foo"