diff options
| author | kou <kou@cozmixng.org> | 2011-05-08 17:32:41 +0900 |
|---|---|---|
| committer | kou <kou@cozmixng.org> | 2011-05-08 17:32:41 +0900 |
| commit | cb83c6d3b626b81ee77a0dfe48dc41f6202e8409 (patch) | |
| tree | 8c554724c8c90c777f65af74109e28a0cc95f1cd /sphinx/builders/gettext.py | |
| parent | 4b8ac4aeadc640c222d97bc103783f8ebfc4e951 (diff) | |
| download | sphinx-cb83c6d3b626b81ee77a0dfe48dc41f6202e8409.tar.gz | |
[i18n] don't generate duplicated msgid.
Diffstat (limited to 'sphinx/builders/gettext.py')
| -rw-r--r-- | sphinx/builders/gettext.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index 1ff92360..732b7af6 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -67,7 +67,9 @@ class I18nBuilder(Builder): catalog = self.catalogs[docname.split(SEP, 1)[0]] for node, msg in extract_messages(doctree): - catalog.setdefault(node.uid, msg) + if not msg in catalog: + catalog[msg] = [] + catalog[msg].append(node.uid) class MessageCatalogBuilder(I18nBuilder): @@ -93,11 +95,12 @@ class MessageCatalogBuilder(I18nBuilder): pofile = open(pofn, 'w', encoding='utf-8') try: pofile.write(POHEADER % data) - for uid, message in messages.iteritems(): + for message, uids in messages.iteritems(): # message contains *one* line of text ready for translation message = message.replace(u'\\', ur'\\'). \ replace(u'"', ur'\"') - pomsg = u'#%s\nmsgid "%s"\nmsgstr ""\n\n' % (uid, message) - pofile.write(pomsg) + for uid in uids: + pofile.write(u'# %s\n' % uid) + pofile.write(u'msgid "%s"\nmsgstr ""\n\n' % message) finally: pofile.close() |
