Django: Comment forcer la traduction dans une langue donnée à l'intérieur d'un modèle?
Dans un Django template, j'ai besoin de transanlate certaines chaînes pour une langue spécifique (différent de l'actuel).
J'aurais besoin de quelque chose comme ceci:
{% tans_to "de" "my string to translate" %}
or
{% blocktrans_to "de" %}my bloc to translate {% endblocktrans_to %}
à la force de la traduction allemande.
Je sais que je peux appeler le code suivant dans une vue:
gettext.translation('django', 'locale', ['de'], fallback=True).ugettext("my string to translate")
Dois-je créer un modèle spécifique tag ? Ou n'est ce qu'il existe déjà un tag dédié à Django ?
Vous devez vous connecter pour publier un commentaire.
templatetags/trans_to.py:
html:
résultat:
translation.activate
et puistranslation.deactivate
, vous pouvez utiliser la nouvelletranslation.override
gestionnaire de contexte stackoverflow.com/a/22944260/247696De Django version
1.6
, il y a unlangue
balise de modèle de sorte que vous pouvez tout simplement passer à la langue souhaitée code:Ce une version modifiée de Zalew du code qui permet de variables du modèle pour le paramètre locale:
Vous pouvez utiliser le
trans
modèle de balise à l'intérieur de vos modèles pour traduire des chaînes dans la langue désirée:Vous devez avoir
USE_I18N
ensemble deTrue
à l'intérieur de lasettings.py
fichier.Puis vous définissez
LANGUAGE_CODE
pour contrôler la langue par défaut pour l'ensemble du site et ajouter leLocaleMiddleware
classe à votreMIDDLEWARE_CLASSES
. Découvrez la Comment Django Découvre La Langue De Préférence section de la documentation.