diff --git a/Tools/i18n/pygettext.py b/Tools/i18n/pygettext.py index 804c98c5e9e..14a83b4f7ba 100755 --- a/Tools/i18n/pygettext.py +++ b/Tools/i18n/pygettext.py @@ -325,7 +325,17 @@ def write(self, fp): # The time stamp in the header doesn't have the same format as that # generated by xgettext... print >> fp, pot_header % {'time': timestamp, 'version': __version__} + # Sort the entries. First sort each particular entry's keys, then + # sort all the entries by their first item. + reverse = {} for k, v in self.__messages.items(): + keys = v.keys() + keys.sort() + reverse[tuple(keys)] = (k, v) + rkeys = reverse.keys() + rkeys.sort() + for rkey in rkeys: + k, v = reverse[rkey] # If the entry was gleaned out of a docstring, then add a comment # stating so. This is to aid translators who may wish to skip # translating some unimportant docstrings.