Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

This package provides an implementation wich let’s you implement your own i18n aware content types.

Detailed Documentation

Langauge Switcher

Let’s show how z3c.language.switch works:

Imports and placeless setup:

>>> import zope.component
>>> from zope.app.testing import placelesssetup
>>> from z3c.language.switch import II18nLanguageSwitch
>>> from z3c.language.switch.testing import IContentObject
>>> from z3c.language.switch.testing import II18nContentObject
>>> from z3c.language.switch.testing import I18nContentObject
>>> from z3c.language.switch.testing import I18nContentObjectLanguageSwitch
>>> from z3c.language.switch.testing import ContentObject
>>> placelesssetup.setUp()

Setup test object:

>>> en_title = u'en_title'
>>> obj = I18nContentObject(en_title)
>>> obj.title
u'en_title'

Add additional languages:

>>> de_title = u'de_title'
>>> fr_title = u'fr_title'
>>> deObj = obj.addLanguage('de', de_title)
>>> frObj = obj.addLanguage('fr', fr_title)

Switch default language:

>>> obj.title
u'en_title'
>>> obj.setDefaultLanguage('de')
>>> obj.title
u'de_title'

Remove the ‘en’ language object:

>>> obj._data.keys()
['de', 'en', 'fr']
>>> obj.removeLanguage('en')
>>> obj._data.keys()
['de', 'fr']

Remove default language object will end in a ValueError error:

>>> obj.removeLanguage('de')
Traceback (most recent call last):
...
ValueError: cannot remove default language (de)

Remove nonexistent language object will end in a ValueError error:

>>> obj.removeLanguage('undefined')
Traceback (most recent call last):
...
ValueError: cannot remove nonexistent language (undefined)

Set default language to a non existent language will end in a ValueError:

>>> obj.setDefaultLanguage('en')
Traceback (most recent call last):
...
ValueError: cannot set nonexistent language (en) as default

Access the language directly via the II18nLanguageSwitch adapter, first register the adapter for the I18nContentObject:

>>> zope.component.provideAdapter(I18nContentObjectLanguageSwitch,
...     (II18nContentObject,), provides=II18nLanguageSwitch)

The adapter is set to the default language in the init method:

>>> adapted = II18nLanguageSwitch(obj)
>>> adapted.title
u'de_title'

Change the default language and access the title again, the title should not switch to another language:

>>> obj.setDefaultLanguage('fr')
>>> adapted.title
u'de_title'

Switch the language to ‘fr’ via the adapter:

>>> adapted.setLanguage('fr')
>>> adapted.title
u'fr_title'

Finally, clean up:

>>> placelesssetup.tearDown()

AvailableLanguagesVocabulary Vocabulary

Use this vocabulary for get the available languages from the object itself.

>>> from z3c.language.switch import vocabulary
>>> vocab = vocabulary.AvailableLanguagesVocabulary(obj)
>>> len(vocab._terms)
2
>>> vocab._terms[0].value
'de'
>>> vocab._terms[0].token
'de'
>>> vocab._terms[0].title
'de'
>>> vocab._terms[1].value
'fr'
>>> vocab._terms[1].token
'fr'
>>> vocab._terms[1].title
'fr'

CHANGES

1.1.0 (2009-11-29)

  • adjust dependencies, reflect changes in zope packages

1.0.2 (2008-05-21)

  • Bug: Fix typo + exception handling

1.0.1 (2008-01-24)

  • Bug: Corrected meta-data.

1.0.0 (2008-01-21)

  • Restructure: Moved zope.language.switch to it’s namespace package.

Release files for z3c.language.switch 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for z3c.language.switch 1.1.0
File Size Uploaded
z3c.language.switch-1.1.0.zip 26.0 kB Details

Release files / z3c.language.switch-1.1.0.zip

Download URL z3c.language.switch-1.1.0.zip
Size 26.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bccd1b34a3b8a643d44ed2675c258e8e45215e4770fcf3178f4f016f60e9074c
BLAKE2b-256 checksum
How to use checksums
37c3da216293596f8b4e18267010347feae462f2c6db46b904c401b308468383
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page