Zope3 i18n语言切换。
项目描述
此包提供了一个实现,允许您实现自己的i18n感知内容类型。
详细文档
语言切换器
让我们看看 z3c.language.switch 如何工作
导入和无位置设置
>>> 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()
设置测试对象
>>> en_title = u'en_title' >>> obj = I18nContentObject(en_title) >>> obj.title u'en_title'
添加额外的语言
>>> de_title = u'de_title' >>> fr_title = u'fr_title' >>> deObj = obj.addLanguage('de', de_title) >>> frObj = obj.addLanguage('fr', fr_title)
切换默认语言
>>> obj.title u'en_title'>>> obj.setDefaultLanguage('de') >>> obj.title u'de_title'
删除‘en’语言对象
>>> obj._data.keys() ['de', 'en', 'fr'] >>> obj.removeLanguage('en') >>> obj._data.keys() ['de', 'fr']
删除默认语言对象将导致 ValueError 错误
>>> obj.removeLanguage('de') Traceback (most recent call last): ... ValueError: cannot remove default language (de)
删除不存在的语言对象将导致 ValueError 错误
>>> obj.removeLanguage('undefined') Traceback (most recent call last): ... ValueError: cannot remove nonexistent language (undefined)
将默认语言设置为不存在的语言将导致 ValueError
>>> obj.setDefaultLanguage('en') Traceback (most recent call last): ... ValueError: cannot set nonexistent language (en) as default
通过 II18nLanguageSwitch 适配器直接访问语言,首先为 I18nContentObject 注册适配器
>>> zope.component.provideAdapter(I18nContentObjectLanguageSwitch, ... (II18nContentObject,), provides=II18nLanguageSwitch)
适配器在初始化方法中设置为默认语言
>>> adapted = II18nLanguageSwitch(obj) >>> adapted.title u'de_title'
更改默认语言并再次访问标题,标题不应切换到其他语言
>>> obj.setDefaultLanguage('fr') >>> adapted.title u'de_title'
通过适配器将语言切换到‘fr’
>>> adapted.setLanguage('fr') >>> adapted.title u'fr_title'
最后,清理
>>> placelesssetup.tearDown()
AvailableLanguagesVocabulary 词汇表
使用此词汇表从对象本身获取可用语言。
>>> 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'
变更日志
1.1.0 (2009-11-29)
调整依赖关系,反映zope包中的更改
1.0.2 (2008-05-21)
错误:修复拼写错误 + 异常处理
1.0.1 (2008-01-24)
错误:修正元数据。
1.0.0 (2008-01-21)
重构:将 zope.language.switch 移至其命名空间包。
项目详情
关闭
z3c.language.switch-1.1.0.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bccd1b34a3b8a643d44ed2675c258e8e45215e4770fcf3178f4f016f60e9074c |
|
MD5 | 141d3e9bc36a5a6211e2c1709fda8a65 |
|
BLAKE2b-256 | 37c3da216293596f8b4e18267010347feae462f2c6db46b904c401b308468383 |