Mercurial > babel > old > babel-test
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)))