栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我什么时候应该使用ugettext_lazy?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我什么时候应该使用ugettext_lazy?

ugettext() 与 ugettext_lazy()
在诸如表单或模型之类的定义中,应使用

ugettext_lazy
此定义,因为此定义的代码仅执行一次(通常在django启动时执行);
ugettext_lazy
以惰性方式翻译字符串,例如 每次访问模型上的属性名称时,都会重新翻译字符串-这完全有意义,因为自django启动以来,你可能正在使用不同的语言查看该模型!

在视图和类似的函数调用中,你可以

ugettext
毫无问题地使用它,因为每次调用该视图时ugettext都会重新执行该视图,因此你将始终获得适合请求的正确翻译!

关于 ugettext_noop()
正如Bryce在回答中指出的那样,此函数将字符串标记为可提取以进行翻译,但会返回未翻译的字符串。这对于在两个地方使用该字符串很有用-已翻译和未翻译。请参见以下示例:

import loggingfrom django.http import HttpResponsefrom django.utils.translation import ugettext as _, ugettext_noop as _noopdef view(request):    msg = _noop("An error has occurred")    logging.error(msg)    return HttpResponse(_(msg))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号