जवाबों:
या आप इसे अपने विचारों में भी प्राप्त कर सकते हैं
request.LANGUAGE_CODE
django.utils.translation.get_language()
django.utils.translation.get_language()
कि हमेशा एक बेहतर उपाय है।
भाषा प्राप्त करने के लिए आपके द्वारा उपयोग की जाने वाली विधि से सावधान रहें । किस विधि के आधार पर, Django उपयोग करने के लिए सही भाषा निर्धारित करने के लिए विभिन्न तरीकों और informations का उपयोग करेगा।
django.utils.translation.get_language()
फ़ंक्शन का उपयोग करते समय , यह थ्रेड भाषा से जुड़ा हुआ है । Django 1.8 से पहले, यह हमेशा वापस आता था settings.LANGUAGE_CODE
जब अनुवाद अक्षम थे। यदि आप थ्रेड भाषा को मैन्युअल रूप से ओवरराइड करना चाहते हैं, तो आप उन फ़ंक्शन override()
या activate()
फ़ंक्शंस का उपयोग कर सकते हैं , जिन्हें बहुत स्पष्ट रूप से नाम नहीं दिया गया है, लेकिन अच्छी तरह से, अभी भी उपयोगी है:
from django.utils import translation
with translation.override('fr'):
print(_("Hello")) # <= will be translated inside the with block
translation.activate('fr') # <= will change the language for the whole thread.
# You then have to manually "restore" the language with another activate()
translation.activate('en') # <= change languages manually
यदि आप django को पथ और / या अनुरोध (भाषा कुकी, ...) की जांच करना चाहते हैं , जो कि बहुत अधिक आम है उदा www.example.com/en/<somepath>
बनाम www.example.com/fr/<somepath>
, का उपयोग करें django.utils.translation.get_language_from_request(request, check_path=False)
। साथ ही, यह हमेशा एक मान्य भाषा सेट करेगाsettings.LANGUAGES
मैंने इस विषय के बारे में Google के माध्यम से इन अंतरों को खोजना बहुत आसान नहीं पाया, इसलिए यहां यह आगे के संदर्भ के लिए है।
django.utils.translation
अनुवाद नहीं है। प्रदान की गई लिंक में एक गलत वर्तनी है। स्निपेट में यह सही है।
django.utils.translation.get_language()
और के बीच के अंतर के लिए +1 django.utils.translation.get_language_from_request(request, check_path)
। यदि आपके विचार से, आपको check_path = True
उस भाषा का उपयोग करने के लिए उत्तरार्द्ध का उपयोग करना चाहिए, जिसमें आपका टेम्प्लेट प्रस्तुत किया जाएगा।
बस यह जोड़ने के लिए कि यदि आप उपयोग करते हैं django.utils.translation.get_language()
तो आपको यह ध्यान में रखना चाहिए कि यदि उस अनुभाग को असिंक्रोनसली कहा जाएगा (जैसे कि एक अजवाइन कार्य) तो यह दृष्टिकोण एक अलग थ्रेड में चलने के कारण काम नहीं करेगा।
आप इसका उपयोग कर सकते हैं
from django.utils import translation
translation.get_language()