mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
[i18n] don't generate duplicated msgid.
This commit is contained in:
parent
c1c6a806c8
commit
0d610fcff4
@ -67,7 +67,9 @@ class I18nBuilder(Builder):
|
|||||||
catalog = self.catalogs[docname.split(SEP, 1)[0]]
|
catalog = self.catalogs[docname.split(SEP, 1)[0]]
|
||||||
|
|
||||||
for node, msg in extract_messages(doctree):
|
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):
|
class MessageCatalogBuilder(I18nBuilder):
|
||||||
@ -93,11 +95,12 @@ class MessageCatalogBuilder(I18nBuilder):
|
|||||||
pofile = open(pofn, 'w', encoding='utf-8')
|
pofile = open(pofn, 'w', encoding='utf-8')
|
||||||
try:
|
try:
|
||||||
pofile.write(POHEADER % data)
|
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 contains *one* line of text ready for translation
|
||||||
message = message.replace(u'\\', ur'\\'). \
|
message = message.replace(u'\\', ur'\\'). \
|
||||||
replace(u'"', ur'\"')
|
replace(u'"', ur'\"')
|
||||||
pomsg = u'#%s\nmsgid "%s"\nmsgstr ""\n\n' % (uid, message)
|
for uid in uids:
|
||||||
pofile.write(pomsg)
|
pofile.write(u'# %s\n' % uid)
|
||||||
|
pofile.write(u'msgid "%s"\nmsgstr ""\n\n' % message)
|
||||||
finally:
|
finally:
|
||||||
pofile.close()
|
pofile.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user