changeset 443:d2e9aaa7c91c

Make sure to only strip on the first occurence of ]. Submitted by: Benoit Boissinot
author jruigrok
date Fri, 19 Feb 2010 13:08:56 +0000
parents fa1625bcbe47
children 865b13853345
files babel/messages/pofile.py babel/messages/tests/pofile.py
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/babel/messages/pofile.py
+++ b/babel/messages/pofile.py
@@ -187,7 +187,7 @@
             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])
--- a/babel/messages/tests/pofile.py
+++ b/babel/messages/tests/pofile.py
@@ -200,7 +200,18 @@
         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"
Copyright (C) 2012-2017 Edgewall Software