code: def _make_node(self, singular, plural, variables, plural_expr,
                     vars_referenced, num_called_num):
          
          # no variables referenced?  no need to escape for old style
          # gettext invocations only if there are vars.
          if not vars_referenced and not self.environment.newstyle_gettext:
              singular = singular.replace('%%', '%')
              if plural:
                  plural = plural.replace('%%', '%')
  
          # singular only:
          if plural_expr is None:
              gettext = nodes.Name('gettext', 'load')
              node = nodes.Call(gettext, [nodes.Const(singular)],
                                [], None, None)
  
          # singular and plural
          else:
              ngettext = nodes.Name('ngettext', 'load')
              node = nodes.Call(ngettext, [
                  nodes.Const(singular),
                  nodes.Const(plural),
                  plural_expr
              ], [], None, None)
  
          # in case newstyle gettext is used, the method is powerful
          # enough to handle the variable expansion and autoescape
          # handling itself
          if self.environment.newstyle_gettext:
              for key, value in iteritems(variables):
                  # the function adds that later anyways in case num was
                  # called num, so just skip it.
                  if num_called_num and key == 'num':
                      continue
                  node.kwargs.append(nodes.Keyword(key, value))
  
          # otherwise do that here
          else:
              # mark the return value as safe if we are in an
              # environment with autoescaping turned on
              node = nodes.MarkSafeIfAutoescape(node)
              if variables:
                  node = nodes.Mod(node, nodes.Dict([
                      nodes.Pair(nodes.Const(key), value)
                      for key, value in variables.items()
                  ]))
          return nodes.Output([node])
docs: Generates a useful node from the data provided.