我已经用谷歌搜索了很长时间,但没有结果。我是 Django 的初学者,所以我不知道它的所有功能。但是这个问题对客户来说非常重要:-(你能帮帮我吗?
所以,我定义了这个模型:
from django.utils.translation import ugettext_lazy as _
class Product(Model):
#translation for model and set db table name
class Meta:
verbose_name = _('product')
verbose_name_plural = _('products')
...
现在,由于捷克语,我需要这些写在管理员列表中:
- 0 výrobků
- 1 维罗贝克
- 2-4 维罗布基
- 5- výrobků
在其他任何地方,我都在ungettext
成功使用。但是,我不知道如何在 Meta 中计数。我发现这是抽象的(但似乎没用):
class Model(DjangoModel):
class Meta:
abstract = True
def get_description(self):
return ungettext(self.verbose_name, self.verbose_name_plural, self.count) % \
{'count':self.count, 'name':self.name}
来源来自django 国际化:为复数标记字符串时计数器不可用
也许,最后可以显示语言定义(尝试添加/删除 %s from msgid
):
msgid "%s product"
msgid_plural "%s products"
msgstr[0] "%s 1 výrobek"
msgstr[1] "%s 2 výrobky"
msgstr[2] "%s 5 výrobků"
如果您需要更多信息来提问,请确保我会提供。
非常感谢您。
更新
请确定,我在 .po 文件中使用以下内容:
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
再一次,除了管理模型之外的任何其他地方,它都在工作。问题不是一般如何运行多重复数,而是如何更改管理中的任何内容(例如新的抽象模型等)以在那里运行它......