def dump(self, fp, nplurals=None, include_locations=True, prune_obsolete=False):
        """
        If plural, shows exactly 'nplurals' plurals if 'nplurals' is not None, else shows at least min_nplurals.
        All plural index are ordered and consecutive, missing entries are displayed with an empty string.
        """
        if not len(self.locations):
            if prune_obsolete or all(translation == '' for index, translation in self.translations.items()):
                return False
            else:
                print('#. obsolete entry', file=fp)
        if include_locations and len(self.locations):
            print('#: {}'.format(' '.join('{}:{}'.format(*location) for location in self.locations)), file=fp)
        if self.context is not None:
            print('msgctxt {}'.format(multiline_escape(self.context)), file=fp)
        print('msgid {}'.format(multiline_escape(self.message)), file=fp)
        if self.plural is not None:
            print('msgid_plural {}'.format(multiline_escape(self.plural)), file=fp)
            if nplurals is None:
                nplurals = self.get_suggested_nplurals()
            for index in range(nplurals):
                print('msgstr[{}] {}'.format(index, multiline_escape(self.translations.get(index, ''))), file=fp)
        else:
            print('msgstr {}'.format(multiline_escape(self.translations.get(0, ''))), file=fp)
        return True