'Generates a useful node from the data provided.'

def _make_node(self, singular, plural, variables, plural_expr):

    if (plural_expr is None):
        gettext = nodes.Name('gettext', 'load')
        node = nodes.Call(gettext, [nodes.Const(singular)], [], None, None)
    else:
        ngettext = nodes.Name('ngettext', 'load')
        node = nodes.Call(ngettext, [nodes.Const(singular), nodes.Const(plural), plural_expr], [], None, None)
    if self.environment.autoescape:
        node = nodes.MarkSafe(node)
    if variables:
        node = nodes.Mod(node, variables)
    return nodes.Output([node])
