this is my setup to generate translations for both singular and plurar text
from django.utils.translations import ngettext as _
from django.utils.translations import gettext
num = 3
my_plural_string = _("{num} apple", "{num} apples", num).format(num=num)
my_single_string = gettext("this is a text")
When using ngettext
and gettext
in the same file the generated .po
file doesn't include the msgid_plural
attribute for the first string
#: .\test_app\test_translation.py:10
msgid "{num} apple"
msgstr ""
#: .\test_app\test_translation.py:11
msgid "this is a text"
msgstr ""
I don't understand what is the problem in this code? Do I need to manually add the msgid_plural
to each plural form of the strings ?
You can't alias ngettext
as _
. Only functions with single argument (gettext or gettext_lazy) can be aliased as _
as stated in documentation. The reason is how xgettext (GNU gettext tool) works.