In Russian, in order to get an acceptable translation, you need to incline nouns and adjectives during the substitution. Gettext itself is not able to do this (except for numerals), but it seems that in python this limitation can be circumvented.
To do this, add a case in the translation lines, for example: “Delete% s [in]” - “in” in square brackets indicates the accusative case.
Well, in the words themselves substituted, you must specify the end for all cases, for example: verbose_name = u "become [me, and, e, y, her, e]" ')
Next, you need to modify the gettext and ngettext functions so that instead of the unicode object they return a special object in which the __mod__ method substitutes values ​​in the required case.
With the latter, I still have questions, since I want to apply it in Django, and I don’t know yet what place (django.utils.translation?) To insert it into.
Thank you in advance for your comments. Even better, if this bike already exists somewhere.