def METHOD_NAME(self, out):
    plist = {}
    for u in self.units:
        loc = u.outerkey
        subkey = u.innerkey
        if loc not in plist:
            plist[loc] = {}
        if subkey is not None:
            plurals = {}
            plurals["NSStringFormatSpecTypeKey"] = "NSStringPluralRuleType"
            plurals["NSStringFormatValueTypeKey"] = u.format_value_type
            plural_tags = self.target_plural_tags
            if isinstance(u.target, multistring):
                plural_strings = u.target.strings
            elif isinstance(u.target, list):
                plural_strings = u.target
            else:
                plural_strings = [u.target]
            # Sync plural_strings elements to plural_tags count.
            if len(plural_strings) < len(plural_tags):
                plural_strings += [""] * (len(plural_tags) - len(plural_strings))
            plural_strings = plural_strings[: len(plural_tags)]
            for plural_tag, plural_string in zip(plural_tags, plural_strings):
                if plural_string:
                    plurals[plural_tag] = plural_string
            plist[loc][subkey] = plurals
        else:
            plist[loc]["NSStringLocalizedFormatKey"] = u.target or u.source
    out.write(plistlib.dumps(plist, sort_keys=False))