Pour traduire un formulaire il faut comme pour toutes les traductions Django faire appel au module django.utils.translation. Mais contrairement à la plupart des utilisations où l’on utilise directement ugettext() pour la traduction et du fait du fonctionnement particulier des formulaires, il faut utiliser la fonction ugettext_lazy().
ugettext_lazy() fonctionne en deux étapes : une première qui va marquer les champs pour la traduction mais qui ne réalisera pas la traduction, puis dans une deuxième étape, la traduction sera réalisée à l’affichage du formulaire, c’est-à-dire au moment où on connaît la langue d’affichage. Tous les champs texte sont traduisibles ainsi.
Exemple :
from django.utils.translation import ugettext_lazy as _ class AuteurForm(ModelForm): class Meta: model = Auteur fields = (’nom’, ’prenom’, ’date_de_naissance’) labels = { ’name’: _(’Auteur’), } help_texts = { ’name’: _(’Saisissez votre nom de famille.’), } error_messages ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique