May*_*aja 5 django django-rest-framework
我正在使用一个开源项目(用 Django 制作)。我无法理解pgettext_lazy是用来做什么的。你能告诉我吗
pgettext_lazy(..)[Django-doc]是一个用来翻译文本的函数。Django 文档中有一个关于翻译的部分[Django-doc]讨论了这一点。
pgettext_lazy是pgettext. 这是一个进行上下文感知翻译 [Django-doc]的函数。上下文感知翻译处理一个单词可以以多种方式翻译的事实。例如May可以翻译为月份的名称,或动词。
我们可以通过添加“上下文标记”来明确如何翻译它,从而调用翻译:
Run Code Online (Sandbox Code Playgroud)from django.utils.translation import pgettext month = pgettext("month name", "May")
在您的.po文件中,您用来定义翻译的文件,然后您可以添加上下文标记:
msgctxt "month name"
msgid "May"
msgstr ""Run Code Online (Sandbox Code Playgroud)
您可以在视图中以激活的语言进行翻译,但您不能仅在例如help_text模型中定义该翻译。事实上,如果你要调用pgettext(..)一个models.py文件。它将翻译成当时help_text活跃的语言。但是,如果稍后使用不同语言的用户使用它help_text,则不会将其翻译成其他语言。
通过使翻译延迟,翻译过程被推迟,直到str(..)对结果调用a 。这样,如果您在模板中渲染惰性对象,它将被翻译成用户的语言。
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |