我有一个模型,其字段称为phone
。在俄语中,它将如下所示:
телефон
有时,当我尝试进行查询时,应用程序会抛出此类错误消息:
User with field phone already exists
如果我在设置中将LANGUAGE_CODE
设置为ru-RU
,那么我添加了具有适当冗长名称的Meta
类,那么以前的异常现在将抛出这种消息:
Пользователь с таким телефон уже существует
那是不对的。
在此消息的上下文中,字段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
字段覆盖此消息?
答案 0 :(得分:0)
这是Django中的缺陷,应在此报告。它违反了软件本地化的“永远不要连接可翻译字符串”的黄金法则。
原始msgid应该更改为以下内容:
#, python-format
msgid "An object of type '%(model_name)s' with the field label '%(field_label)s' already exists."
msgstr ""
您无法在应用程序中修复该问题。而且,顺便说一下,不仅是俄语,而且可能还有所有文章和性别明确的语言都会受到该缺陷的影响。