Django: Comment obtenir le code de langue dans le modèle?
Est qu'il y a certains variable globale pour gettin' code de langue dans django modèle ou au moins de le transmettre par le biais de vue?
quelque chose comme: {{ LANG }}
devrait produire "fr" par exemple..
J'ai vraiment pas à l'aise quand les gens à l'aide de request.LANGUAGE_CODE
.
Explication détaillée serait apprécié =)
- avez-vous essayé {{LANGUAGE_CODE}}, voir docs.djangoproject.com/en/dev/ref/templates/api/... pour plus d'info
Vous devez vous connecter pour publier un commentaire.
Si elle n'existe pas déjà, vous devez écrire un modèle de processeur de contexte. Voici comment vous pouvez le faire.
Mettre ça quelque part:
Puis, ajouter une référence à la
TEMPLATE_CONTEXT_PROCESSORS
réglage. Quelque chose comme ceci:(Je recommande d'ajouter à la définition globale, car elle signifie que vous n'avez pas à casser des choses accidentellement lorsqu'un nouveau contexte processeur est ajouté par défaut.)
Cependant, il n'existe pas, comme le modèle intégré contexte processeur
django.de modèle.context_processors.i18n
. Vous pouvez y accéder en tant queLANGUAGE_CODE
.Purement par intérêt, voici la définition de cette fonction:
Assurez-vous que vous utilisez une
RequestContext
pour votre modèle de rendu, pas un simpleContext
, ou il ne fonctionnera pas.RequestContext
, toujours. Il suffit de prendre l'habitude maintenant. À l'aide deContext
est une erreur; il n'y aura toujours être quelque chose plus tard qui fera de vous que vous auriez utiliséRequestContext
universellement.C'est un vieux sujet. Mais certains pourraient trouver utile.
Django de référence et d'exemple.
Testé avec
Django==1.11.2
.Permettre
I18N
et emploienti18n
modèle de contexte processeur.Et ensuite c'est simple dans le modèle.
Mais l'utilisation
render()
, pasrender_to_response()
, dans votre fonction de visualisation de sorte que leLANGUAGE_CODE
variable est accessible dans le modèle: