代码之家  ›  专栏  ›  技术社区  ›  msln

Django-复数形式的无效标记:表达式

  •  0
  • msln  · 技术社区  · 7 年前

    在设置.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

    1.11.6

    有什么问题,我该怎么解决?

    更新 locale/ku/LC_MESSAGES ,最后一行注释是 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"

    0 回复  |  直到 7 年前
        1
  •  2
  •   elano7    6 年前

    以下也是对相同错误的回答,但情况不同(支持他们的语言):

    French translation raises "ValueError('invalid token in plural form: %s' % value)"

    也许有人觉得这很有帮助。我也在寻求帮助,发现了你的问题,但我的解决办法是在上面的链接。 解决方案 删除项目虚拟环境并重新安装)

        2
  •  1
  •   Hojat Modaresi    6 年前

    我写了一个更全面的答案 this post

    简而言之,如果你的语言只有一种复数形式,例如,两个以上 apple apples ,查找此行:

     "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
    

    并将其更改为:

    "Plural-Forms: nplurals=2; plural=(n != 1);\n"
    

    你还需要删除并重新设置你的env。