La localisation des formulaires

1. La traduction

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 = {  ...
Pour consulter la suite, découvrez le livre suivant :
couv_EIDJA.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Formulaires de type software wizard (assistant logiciel)
Suivant
Principes et généralités