Je veux traduire un formulaire Django. Comment traduire les étiquettes des champs? P>
J'ai essayé J'ai peut-être obtenu le concept d'ugetText_lazy faux, je pense p>
en termes simples, je veux que les étiquettes de champ soient placées dans django.po fichier. p>
Les autres traductions faites avec J'ai pu traduire les champs en fonction d'un modèle en paramétrage champ.label = ugettext_lazy (champ.label) code>, mais les étiquettes ne sont pas renseignées dans le fichier django.po p>
ugettext code> et
{% trans%} code> balise fonctionne bien p>
verbose_name code> mais lorsque j'essaie pour un champ de formulaire, je reçois un
TypeError P> P> P> P> P> P> P> P>
3 Réponses :
class ExampleForm(forms.Form): f1 = forms.CharField(label= ugettext_lazy('field label'))
from django.utils.translation import ugettext_lazy as _ first_name = forms.CharField(label=_(u'First name'))
Je vais préciser que: Il est susceptible d'augmenter une erreur car les formulaires ne peuvent pas gérer bien un objet proxy comme
_ (U'first nom '), et le résultat dans le rendu est un formulaire vide.
J'ai testé ceci sur python2.x et django 1.3 / 1.4 p> La raison est due aux messages de p .po compilés créés initialement par différents O.S.. et des bibliothèques (cela peut dépendre de Python, Django, OS. Versions de bibliothèques).
Lorsque vous avez cette erreur, vous devez recréer les messages localisés. P> P>