Mer*_*glu 4 web2py internationalization
我正在学习web2py。我阅读了示例开源代码。在一个应用程序(storpy)中,程序员T.lazy在模型文件中反复使用db.py以下代码:
...
Field('comment', 'text'),
Field('cover', 'upload', autodelete=True))
T.lazy = False
db.dvds.title.requires = [IS_NOT_EMPTY(error_message=T('Missing data') + '!'), IS_NOT_IN_DB(db, 'dvds.title', error_message=T('Already in the database') + '!')]
...
T.lazy = True
Run Code Online (Sandbox Code Playgroud)
为什么程序员T.lazy首先设置False然后设置True?
默认情况下,它T()是惰性的-调用它时,它实际上并不执行转换,而是返回一个lazyT对象,该对象直到在视图中序列化后才转换。如果设置T.lazy=False,将强制立即进行翻译,因此调用T('some string')将返回实际的翻译后的字符串,而不是lazyT对象。
请注意,从即将发布的版本开始,不必切换T.lazy到False和True,您将可以T('some string', lazy=False)强制为单个呼叫立即进行翻译。强制立即转换的其他方法是str(T('some string'))或T('some string').xml()- str()序列化lazyT对象(并.xml()简单地调用str())。
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |