Django,在异常上下文中翻译字段名称

Django, translating field names in context of exceptions

我有一个名为 phone 的带有字段的模型。在俄语中它看起来像这样:

телефон

有时,当我尝试进行查询时,应用程序会向我抛出此类错误消息:

User with field phone already exists

如果我在设置中将 LANGUAGE_CODE 设置为 ru-RU,那么我添加了 Meta class,它具有适当的详细名称,以前的异常现在将抛出那种留言:

Пользователь с таким телефон уже существует

这是不对的。

在此消息的上下文中,字段 phone 应称为 телефоном。它最后有额外的字母。

在某些语言中,例如俄语,根据句子的上下文,单词会有不同的结尾。

我正在尝试使用 gettext 并生成 po 文件,其中包含以下代码行:

#: .\main\models\users.py:77
msgid "phone"
msgstr ""

但是,我不知道如何在这段代码中写多例翻译。

是否可以对字段名进行不同大小写的翻译?是否可以针对此模型专门覆盖未找到的错误?

==================更新===================== ====

我找到了用于此异常消息的标准 Django 消息:

#, python-format
msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(model_name)s с таким %(field_label)s уже существует."

是否可以专门针对此 phone 字段覆盖此消息??

这是 Django 中的一个缺陷,应该在那里报告。它违反了软件本地化的黄金法则"never concatenate translatable strings"。

原来的msgid应该改成这样:

#, python-format
msgid "An object of type '%(model_name)s' with the field label '%(field_label)s' already exists."
msgstr ""

您无法在您的应用程序中修复该问题。而且,顺便说一句,不仅俄语而且可能所有具有定冠词和性别的语言都会受到该缺陷的影响。