django - i18n - 创建翻译但稍后使用它?

django - i18n - create translation but use it later?

我想使用一个尚未使用的字符串。所以模板中和 views/models 中都没有任何 {% trans 'word_I_want_to_use' %}

我可以在 views.py 中像这样创建它吗?

from django.utils.translation import ugettext as _
_("word_I_want_to_use")

makemessagescompilemessages

稍后,我会将 {% trans 'word_I_want_to_use' %} 放入模板中。

这行得通吗?

是的。那可行。您还可以使用 lazy translation,这样您就不会对未使用的翻译产生性能影响:

from django.utils.translation import ugettext_lazy as _
_("word_I_want_to_use")

或者,您可以使用 ugettext_noop 只翻译而不直接使用字符串。这取决于您的计划和用例。