口碑好的企业网站建设东莞万江今天最新通知
web/
2025/10/1 22:44:30/
文章来源:
口碑好的企业网站建设,东莞万江今天最新通知,做海外购网站,潮流印花图案设计网站使用 django.utils.translation.gettext_lazy() 函数#xff0c;使得其中的值只有在访问时才会被翻译#xff0c;而不是在 gettext_lazy() 被调用时翻译。例如#xff1a;要翻译一个模型的 help_text#xff0c;按以下进行#xff1a;from django.utils.translation impor…使用 django.utils.translation.gettext_lazy() 函数使得其中的值只有在访问时才会被翻译而不是在 gettext_lazy() 被调用时翻译。例如要翻译一个模型的 help_text按以下进行from django.utils.translation import ugettext_lazyclass MyThing(models.Model):name models.CharField(help_textugettext_lazy(This is the help text))在这个例子中 ugettext_lazy() 将字符串作为惰性参照存储而不是实际翻译。 翻译工作将在字符串在字符串上下文中被用到时进行比如在Django管理页面提交模板时。在Python中无论何处你要使用一个unicode 字符串(一个unicode 类型的对象)您都可以使用一个 ugettext_lazy() 调用的结果。 一个ugettext_lazy()对象并不知道如何把它自己转换成一个字节串。如果你尝试在一个需要字节串的地方使用它事情将不会如你期待的那样。 同样你也不能在一个字节串中使用一个 unicode 字符串。所以这同常规的Python行为是一致的。 例如# This is fine: putting a unicode proxy into a unicode string.uHello %s % ugettext_lazy(people)# This will not work, since you cannot insert a unicode object# into a bytestring (nor can you insert our unicode proxy there)Hello %s % ugettext_lazy(people)如果你曾经见到到像hello这样的输出你就可能在一个字节串中插入了ugettext_lazy()的结果。 在您的代码中那是一个漏洞。如果觉得 gettext_lazy 太过冗长可以用 _ (下划线)作为别名就像这样from django.utils.translation import ugettext_lazy as _class MyThing(models.Model):name models.CharField(help_text_(This is the help text))在Django模型中总是无一例外的使用惰性翻译。 为了翻译字段名和表名应该被标记。(否则的话在管理界面中它们将不会被翻译) 这意味着在Meta类中显式地编写verbose_nane和verbose_name_plural选项而不是依赖于Django默认的verbose_name和verbose_name_plural(通过检查model的类名得到)。from django.utils.translation import ugettext_lazy as _class MyThing(models.Model):name models.CharField(_(name), help_text_(This is the help text))class Meta:verbose_name _(my thing)verbose_name_plural _(mythings)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85295.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!