2010-11-12 15 views
1

J'ai un site avec des chaînes de traduction dans les modèles HTML et les fichiers views.py, forms.py et models.py. Django a créé le fichier django.po pour ma deuxième langue, et j'ai saisi la plupart des traductions. Cependant, seules les traductions dans mes fichiers .html et view.py apparaissent sur le site. les autres sont ignorés il semble (models.py, forms.py - les deux par défaut à l'anglais)Pourquoi Django ne montre-t-il que quelques-unes de mes traductions?

Que se passe-t-il?

J'ai évidemment compilé mon fichier django.mo et cela fonctionne - sinon beaucoup de chaînes de modèles ne seraient pas traduites - alors pourquoi ignore-t-elle mes traductions models.py. À la fois dans le site d'administration et à l'avant.

Une pensée est qu'il peut y avoir une erreur dans le fichier django.mo qui provoque sa rupture. Est-il possible de tester un fichier django.mo pour les erreurs? Cela fonctionnerait-il s'il y avait une erreur?

Mon projet a également installé Django-cms, ce qui pourrait causer un conflit?

Merci pour tout hangar léger.

Guy

Répondre

2

1.Vérifiez que vous utilisez toujours ugettext_lazy (non ugettext) dans le modèle et définitions de formulaire

2.Retirer possibles fuzzy tags dans les fichiers .mo.

+0

brièvement - quelle est la différence entre _lazy et pas _lazy alors? Cela a fonctionné ... –

+0

La version '_lazy' traduit CHAQUE FOIS la chaîne est accédée, la version normale seulement une fois que le code est exécuté, ce qui arrive pour les formulaires et modules uniquement sur le démarrage de django UNE FOIS! –