'Set the :term:`locale negotiator` for this application.  The
:term:`locale negotiator` is a callable which accepts a
:term:`request` object and which returns a :term:`locale
name`.  The ``negotiator`` argument should be the locale
negotiator implementation or a :term:`dotted Python name`
which refers to such an implementation.
Later calls to this method override earlier calls; there can
be only one locale negotiator active at a time within an
application.  See :ref:`activating_translation` for more
information.
.. note::
Using the ``locale_negotiator`` argument to the
:class:`pyramid.config.Configurator` constructor can be used to
achieve the same purpose.'

@action_method
def set_locale_negotiator(self, negotiator):

    def register():
        self._set_locale_negotiator(negotiator)
    intr = self.introspectable('locale    negotiator', None, self.object_description(negotiator), 'locale    negotiator')
    intr['negotiator'] = negotiator
    self.action(ILocaleNegotiator, register, introspectables=(intr,))
