2017-09-08 4 views
2

J'ai un problème quand je lancecompilemessages fait des accidents i18n

python manage.py compilemessages 

il travaillait parfaitement bien, mais aujourd'hui, chaque fois que je le fais, i18n ne se charge pas sur mes pages web. Je reçois toujours la même question:

raise ValueError('invalid token in plural form: %s' % value) 
ValueError: invalid token in plural form: EXPRESSION 

J'ai essayé de vider mes fichiers .po et exécuter à nouveau compilemessages, et je reçois toujours l'erreur. Je n'ai absolument aucune autre idée où chercher.

Note: quand je vais revenir à tout ancien engagement, tout fonctionnera bien jusqu'à ce que je lance compilemessages

+1

Essayez d'exécuter la commande sur les versions antérieures de votre code afin que vous puissiez identifier la briser le changement. Si vous utilisez Git, la commande ['git bisect'] (https://git-scm.com/docs/git-bisect) peut vous aider. – Chris

+0

Oui, j'ai essayé ça avant, pas le problème, c'est vraiment mon compilemessages qui pourrait être cassé, un autre développeur a exécuté compilemessages à partir de la même branche et n'a pas rencontré le problème ... – romainm

Répondre

0

dans django 1.11 makemessages -l en crée un fichier .po défectueux pour en langue mais pour d'autres langues que je l'ai testé fonctionne très bien.

par ex. pour l'anglais - mal:

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

et Croatian - ok:

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

j'ai signalé ce problème ici https://code.djangoproject.com/ticket/28709