def parse_tag_group(self, group_node, is_source=False, context=None):
        if not context:
            context = []
        if group_node.attributes['restype'].value == "x-gettext-plurals":
            pluralized = True
            nplural_file = 0
            nplural = self.language.get_pluralrules_numbers()
            trans_unit_nodes = []
            for node in group_node.childNodes:
                if node.nodeType == node.ELEMENT_NODE and node.localName == "trans-unit":
                    nplural_file += 1
                    trans_unit_nodes.append(node)
                if node.nodeType == node.ELEMENT_NODE and node.localName == "context-group":
                    context.extend(self.parse_tag_context_group(node, is_source))
            source = ""
            source_node = trans_unit_nodes[nplural.index(1)].getElementsByTagName("source")[0]
            if 1 > len(source_node.childNodes):
                source = self._getText(source_node.childNodes)
            else:
                source = source_node.firstChild.data
            if is_source:
                if nplural_file != 2:
                    raise self.HandlerParseError(_("Your source file has more than two plurals which is not supported."))
                for n, node in enumerate(trans_unit_nodes):
                    if n == 0:
                        rule = 1
                    else:
                        rule = 5
                    self.parse_tag_trans_unit(node, is_source, [i for i in context], source_string = source, rule=rule)
            else:
                if nplural_file != len(nplural):
                    raise self.HandlerParseError(_("Your translation file does not have the supported number of plurals."))

                for n, node in enumerate(trans_unit_nodes):
                    self.parse_tag_trans_unit(node, is_source, [i for i in context], source_string = source, rule=nplural[n])
            return

        for node in group_node.childNodes:
            if node.nodeType == node.ELEMENT_NODE and node.localName == "group":
                self.parse_tag_group(node, is_source, [i for i in context])
            if node.nodeType == node.ELEMENT_NODE and node.localName == "trans-unit":
                self.parse_tag_trans_unit(node, is_source, [i for i in context])
            if node.nodeType == node.ELEMENT_NODE and node.localName == "context-group":
                # context-group has to be in XML before occurence of trans-unit, so it
                # is ok to populate context this way
                context.extend(self.parse_tag_context_group(node, is_source))
        # TODO prop-group, note, count-group
        # there is no way to handle bin-unit in transifex
dataset/ETHPy150Open rvanlaar/easy-transifex/src/transifex/transifex/resources/formats/xliff.py/XliffHandler.parse_tag_group/swapped operands of `>`