3

我有一个 Django 应用程序,它有 24 种语言的翻译。一切都很好,除了波兰语翻译不起作用

当我尝试激活波兰语时,django.utils.translation.activate(lang_code)我总是收到此错误

   ValueError at /pl/traininglog/
   plural forms expression could be dangerous

Django 生成的复数形式表达式是这样的(还要注意换行符):

"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"

我检查了 gettext 网站和其他网站,这应该是正确的表达方式。

奇怪的是:当我将 Plural-Forms 字符串更改为明显错误的内容甚至删除它时,错误消息保持不变。(是的,我做了一个./manage.py compilemessages:)

如前所述,其他 23 种语言按预期工作。有人有相同或类似的问题吗?

提前致谢, 安东

4

1 回答 1

0

我发现了错误。

我安装了旧版本的 Django-Fiber。它使用(以及旧版本)的 django-mptt 将内容存储在数据库中。而这个较旧的 (0.5.1) 版本的 mptt 在其波兰语翻译中存在一个错误,该错误已在此提交中修复:

https://github.com/django-mptt/django-mptt/commit/4b6a9758396450651bc2d02b2c7d49bac6cd3f25

我将 mptt 更新到 0.5.5 版,现在一切正常!

于 2013-05-17T05:33:13.450 回答