Zope3 i18n language switch.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file z3c.language.switch-1.1.0.zip
.
File metadata
- Download URL: z3c.language.switch-1.1.0.zip
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bccd1b34a3b8a643d44ed2675c258e8e45215e4770fcf3178f4f016f60e9074c |
|
MD5 | 141d3e9bc36a5a6211e2c1709fda8a65 |
|
BLAKE2b-256 | 37c3da216293596f8b4e18267010347feae462f2c6db46b904c401b308468383 |