我在django网站上添加了“库尔德”语言。 django不支持该语言,因此我添加了以下语言: 在settings.py
gettext = lambda s: s
NEW_LANG_INFO = {
'ku': {
'bidi': True,
'code': 'ku',
'name': 'Kurdish',
'name_local': u'کوردی',
},
}
import django.conf.locale
LANG_INFO = dict(**django.conf.locale.LANG_INFO, **NEW_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO
LANGUAGES = (
('en', 'English'),
('ku', gettext('Kurdish')),
('ar', 'Arabic')
)
现在当我转到mysite.com/en/admin/
时,它可以正常工作。当我转到mysite.com/ar/admin/
时,它可以正常工作。
但是当我转到mysite.com/ku/admin/
时,此消息引发了错误:
ValueError at /ku/admin/
invalid token in plural form: EXPRESSION
django版本为1.11.6
。
问题是什么,我该如何解决?
更新
我发现在locale/ku/LC_MESSAGES
的django.po中,最后一行注释是"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
答案 0 :(得分:4)
这也是对相同错误的回答,但情况不同(支持其语言):
French translation raises "ValueError('invalid token in plural form: %s' % value)"
也许有人觉得有帮助。我也在寻找帮助,但发现了您的问题,但是我的解决方案在上面的链接上。 (解决方案是删除项目虚拟环境,然后重新安装)
答案 1 :(得分:1)
我在this post中写了一个更全面的答案。
简而言之,如果您的语言仅具有一种复数形式,例如,对于多于两个的apple
,您说apples
,请找到此行:
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
并将其更改为:
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
另外,您还需要删除并重新设置环境。