我想要一个具有以下选择的 ChoiceField:
choices = [(1, '1 thing'),
(2, '2 things'),
(3, '3 things'),
...]
我想让它翻译。
这不起作用:
choices = [(i, ungettext_lazy('%s thing', '%s things', i) % i) for i in range(1,4)]
因为一旦惰性对象被插入,它就变成了一个 unicode 对象——因为 ChoiceField.choices 在启动时被评估,它的选择将在 Django 启动期间处于活动状态的语言中。
我可以使用ugettext_lazy('%s things' % i)
,但这需要对每个数字进行翻译,这很愚蠢。这样做的正确方法是什么?