Metadata-Version: 1.0
Name: z3c.language.negotiator
Version: 1.1.0
Summary: Zope3 i18n language negotiator.
Home-page: http://pypi.python.org/pypi/z3c.language.negotiator
Author: Roger Ineichen and the Zope Community
Author-email: zope-dev@zope.org
License: ZPL 2.1
Description: This package provides a persistent INegotiator utility implementation.
        
        
        Detailed Documentation
        **********************
        
        ==========
        Negotiator
        ==========
        
        This package provides a local implementation of the ``INegotiator`` interface
        defined in ``zope.i18n.interfaces``. The negotiator implementation offers some
        additional usefull attributes which are explained later. This ``INegotiator``
        is also used in the ``z3c.language.switch`` package.
        
        Let's setup a negotiator:
        
        >>> from z3c.language.negotiator import app
        >>> negotiator = app.Negotiator()
        
        Such a negotiator provides the following interfaces:
        
        >>> from zope.i18n.interfaces import INegotiator
        >>> from z3c.language.negotiator.interfaces import INegotiatorManager
        
        >>> INegotiator.providedBy(negotiator)
        True
        >>>
        >>> INegotiatorManager.providedBy(negotiator)
        True
        >>>
        
        By default a negotiator has the following values:
        
        >>> negotiator.policy
        'session --> browser --> server'
        
        >>> negotiator.serverLanguage
        u'en'
        
        >>> negotiator.offeredLanguages
        []
        
        If we set a policy with a wrong value, we will get a ValueError:
        
        >>> negotiator.policy = u'wrong'
        Traceback (most recent call last):
        ...
        ValueError: ('Not a valid policy name.', u'wrong')
        
        Register the negotiator as a global utility:
        
        >>> import zope.component
        >>> zope.component.provideUtility(negotiator, INegotiator)
        
        Now we can use the vocabulary and see what offered languages are available:
        
        >>> from z3c.language.negotiator import vocabulary
        >>> vocab = vocabulary.OfferedLanguagesVocabulary(None)
        >>> vocab
        <z3c.language.negotiator.vocabulary.OfferedLanguagesVocabulary object at ...>
        
        >>> vocab._terms
        []
        
        Add some offered languages and check the vocabulary again:
        
        >>> negotiator.offeredLanguages = [u'de', u'fr']
        >>> negotiator.offeredLanguages
        [u'de', u'fr']
        
        Try to get the utility and ceck the offeredLanguages again:
        
        >>> util = zope.component.getUtility(INegotiator)
        >>> util.offeredLanguages
        [u'de', u'fr']
        
        Now check the vocabulary again:
        
        >>> vocab = vocabulary.OfferedLanguagesVocabulary(None)
        >>> vocab._terms[0].value
        u'de'
        >>> vocab._terms[0].token
        'de'
        >>> vocab._terms[0].title
        u'de'
        >>> vocab._terms[1].value
        u'fr'
        >>> vocab._terms[1].token
        'fr'
        >>> vocab._terms[1].title
        u'fr'
        
        See ``tests.py`` for more tests.
        
        
        =======
        CHANGES
        =======
        
        1.1.0 (2009-11-29)
        ------------------
        
        - adjust dependencies, reflect changes in zope packages
        
        - clanup tests, remove unused tests and skip using zope.app.testing
        
        
        1.0.1 (2008-01-24)
        ------------------
        
        - Bug: Corrected meta data.
        
        
        1.0.0 (2008-01-21)
        ------------------
        
        - Restructure: Removed the two vocabularies
        ``AvailableTranslationDomainLanguagesVocabulary`` and
        ``AvailableTranslationDomainLanguagesVocabularyForZ3C`` which depend on the
        ``zope.app.i18n`` implementation. Note these vocabularies are not persistent
        and if you will need it, let's implement this in another package. This
        allows us to skip all dependencies to ``zope.app.i18n``.
        
        - Restructure: Moved ``zope.language.negotiator`` to it's namespace package.
        
Keywords: zope3 z3c i18n language negotiator
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope3
