67 votes

Django: Sens de trait de soulignement dans la liste de tuples utilisé pour définir le choix des champs?

J'ai vu quelques exemples de définir le choix des champs comme suit:

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

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

Quelle est la signification des principaux traits de soulignement? Et pourquoi est le deuxième valeur dans le tuple même mis entre parenthèses?

97voto

stevejalim Points 6750

Le trait de soulignement est la fonction utilisée couramment alias pour l'un des ugettext fonctions utilisées par l'internationalisation (i18n) en mécanique.

Cela signifie que lorsque vous avez i18n en cours d'exécution, le choicefield étiquettes seront traduits dans les fin-la langue de l'utilisateur, si une traduction est disponible.

Au sommet d'un fichier qui comporte ce genre de syntaxe, vous devriez voir (ou si non, vous devriez avoir) quelque chose comme:

from django.utils.translation import ugettext_lazy as _

Voir les docs ici pour plus de détails

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X