Comment je reçois le langage courant dans django?
Comment puis-je obtenir le langage courant dans le thread en cours dans un modèle ou dans l'admin?
- Veuillez être précis. "La langue de ma web - à-dire la demande web, le serveur web, ou quoi?
Vous devez vous connecter pour publier un commentaire.
Fonctions d'intérêt particulier sont
django.utils.translation.get_language()
qui renvoie à la langue utilisée dans le thread courant. Voir la documentation.Ou vous pouvez également obtenir ce votre point de vue
django.utils.translation.get_language()
django.utils.translation.get_language()
est toujours une meilleure solution.Attention de la méthode que vous utilisez pour obtenir la langue. Selon la méthode, Django utilisera différents moyens et informations pour déterminer le droit de la langue à utiliser.
Lors de l'utilisation de la
django.utils.translation.get_language()
fonction, elle est liée à la fil langue. Avant Django 1.8, il revenait toujourssettings.LANGUAGE_CODE
lorsque les traductions ont été désactivés. Si vous souhaitez remplacer manuellement le fil de la langue, vous pouvez utiliser leoverride()
ouactivate()
fonctions, ce qui n'est pas explicitement nommé, mais bien, toujours utile:Si vous voulez django pour vérifier la chemin d'accès et/ou de la demande (témoin de langue, ...), ce qui est beaucoup plus fréquent par exemple,
www.example.com/en/<somepath>
vswww.example.com/fr/<somepath>
, utilisezdjango.utils.la traduction.get_language_from_request(demande, check_path=False)
. Aussi, il retournera toujours valide la langue définie danssettings.LANGUAGES
Je l'ai trouvé pas très facile de trouver ces différences par le biais de Google sur ce sujet si elle est ici pour référence ultérieure.
django.utils.translation
, pas de traductions. Il y a une faute d'orthographe dans le lien fourni. Dans l'extrait, il est correct.django.utils.translation.get_language()
etdjango.utils.translation.get_language_from_request(request, check_path)
. Si dans la vue, vous devez utiliser celui-ci aveccheck_path = True
pour obtenir la langue de votre modèle se rendait dans.Juste pour ajouter que si vous n'utilisez
django.utils.translation.get_language()
alors vous devriez garder à l'esprit que si cette section de code sera appelé de manière asynchrone (par exemple, comme un céleri tâche), alors cette approche ne fonctionnera pas en raison de l'exécuter dans un thread différent.vous pouvez utiliser cette
Vous pouvez lire le système de
locale
pour l'information sur la langue.