diff babel/messages/pofile.py @ 379:1c0915da48c6 stable-0.9.x

Ported [407:415/trunk] back to 0.9.x branch.
author cmlenz
date Tue, 08 Jul 2008 21:01:28 +0000
parents c2ae38340540
children c6babc3bbc10
line wrap: on
line diff
--- a/babel/messages/pofile.py
+++ b/babel/messages/pofile.py
@@ -145,8 +145,14 @@
             msgid = tuple([denormalize(m) for m in messages])
         else:
             msgid = denormalize(messages[0])
-        if len(translations) > 1:
-            string = tuple([denormalize(t[1]) for t in translations])
+        if isinstance(msgid, (list, tuple)):
+            string = []
+            for idx in range(catalog.num_plurals):
+                try:
+                    string.append(translations[idx])
+                except IndexError:
+                    string.append((idx, ''))
+            string = tuple([denormalize(t[1]) for t in string])
         else:
             string = denormalize(translations[0][1])
         message = Message(msgid, string, list(locations), set(flags),
@@ -384,9 +390,14 @@
             _write('%smsgid_plural %s\n' % (
                 prefix, _normalize(message.id[1], prefix)
             ))
-            for i, string in enumerate(message.string):
+
+            for idx in range(catalog.num_plurals):
+                try:
+                    string = message.string[idx]
+                except IndexError:
+                    string = ''
                 _write('%smsgstr[%d] %s\n' % (
-                    prefix, i, _normalize(message.string[i], prefix)
+                    prefix, idx, _normalize(string, prefix)
                 ))
         else:
             _write('%smsgid %s\n' % (prefix, _normalize(message.id, prefix)))
Copyright (C) 2012-2017 Edgewall Software