code: def install(domain, lazy=False):
      
      if lazy:
          # NOTE(mrodden): Lazy gettext functionality.
          #
          # The following introduces a deferred way to do translations on
          # messages in OpenStack. We override the standard _() function
          # and % (format string) operation to build Message objects that can
          # later be translated when we have more information.
          def _lazy_gettext(msg):
              """Create and return a Message object.
  
              Lazy gettext function for a given domain, it is a factory method
              for a project/module to get a lazy gettext function for its own
              translation domain (i.e. nova, glance, cinder, etc.)
  
              Message encapsulates a string so that we can translate
              it later when needed.
              """
              return Message(msg, domain=domain)
  
          from six import moves
          moves.builtins.__dict__['_'] = _lazy_gettext
      else:
          localedir = '%s_LOCALEDIR' % domain.upper()
          if six.PY3:
              gettext.install(domain,
                              localedir=os.environ.get(localedir))
          else:
              gettext.install(domain,
                              localedir=os.environ.get(localedir),
                              unicode=True)
docs: Install a _() function using the given translation domain.
  
      Given a translation domain, install a _() function using gettext's
      install() function.
  
      The main difference from gettext.install() is that we allow
      overriding the default localedir (e.g. /usr/share/locale) using
      a translation-domain-specific environment variable (e.g.
      NOVA_LOCALEDIR).
  
      :param domain: the translation domain
      :param lazy: indicates whether or not to install the lazy _() function.
                   The lazy _() introduces a way to do deferred translation
                   of messages by installing a _ that builds Message objects,
                   instead of strings, which can then be lazily translated into
                   any available locale.