2010-06-03 6 views
38

J'ai vu quelques exemples définissant les champs de choix comme ceci:Django: Signification du trait de soulignement principal dans la liste des tuples utilisés pour définir les champs de choix?

COUNTRIES = (
    ('fr', _('France')), 
    ('de', _('Germany')), 
    ... 
) 

(source: http://code.djangoproject.com/ticket/5446 Voir aussi: http://djangosnippets.org/snippets/494/)

Quelle est la signification des traits de soulignement? Et pourquoi la deuxième valeur du tuple est-elle même entre parenthèses?

Répondre

62

Le trait de soulignement principal est l'alias de fonction couramment utilisé pour l'une des fonctions ugettext utilisées par la mécanique d'internationalisation (i18n). Cela signifie que lorsque vous avez i18n en cours d'exécution, les libellés du champ de sélection seront traduits dans la langue de l'utilisateur final appropriée, si une traduction est disponible.

Au sommet d'un fichier qui présente ce type de syntaxe, vous devriez voir (ou sinon, vous devriez avoir) quelque chose comme:

from django.utils.translation import ugettext_lazy as _

Voir la docs here pour plus de détails

Questions connexes