gpt4 book ai didi

internationalization - T.lazy 在 web2py 中做了什么?

转载 作者:行者123 更新时间:2023-12-05 01:36:10 24 4
gpt4 key购买 nike

我正在学习 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

程序员为什么设置 T.lazy先到 False然后到 True ?

最佳答案

默认情况下,T()懒惰——当你调用它时,它实际上并不进行翻译,而是返回一个 lazyT 对象,该对象在 View 中序列化之前不会被翻译。如果您设置 T.lazy=False ,这将强制立即翻译,因此调用 T('some string')将返回实际翻译的字符串而不是lazyT 对象。

请注意,从即将发布的版本开始,不必切换 T.lazyFalseTrue ,你就可以做 T('some string', lazy=False)强制立即翻译单个调用。其他强制立即翻译的方法是 str(T('some string'))T('some string').xml() -- str()序列化 lazyT 对象(并且 .xml() 只是调用 str() )。

关于internationalization - T.lazy 在 web2py 中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8080099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com