मेरी models.py फ़ाइल में मैं इस तरह के मॉडल पर एक फ़ील्ड परिभाषित करता हूं:

description = models.CharField(
    max_length=40,
    default=_('Bla bla bla'),
)

अब, _ django.utils.translation.ugettext है, और मैं 'Bla bla bla' के हिब्रू अनुवाद को डिफ़ॉल्ट मान के रूप में उपयोग करना चाहता हूं, जो 'בלה בלה בלה' है। (वेबसाइट केवल हिब्रू में है।) संदेश फ़ाइल में स्ट्रिंग का ठीक से अनुवाद किया गया है। लेकिन जब मैं Django व्यवस्थापक चलाता हूं और एक नई वस्तु बनाता हूं, तो मुझे मैदान पर अंग्रेजी 'bla bla bla' दिखाई देती है। मुझे लगता है कि models.py मॉड्यूल को संकलित करते समय अंग्रेजी सक्रिय भाषा है। मैं इसे कैसे हल कर सकता हूं और इसे हिब्रू बना सकता हूं?

मुझे पता है कि एक समाधान ugettext को छोड़ देना होगा और सिर्फ पायथन मॉड्यूल के अंदर हिब्रू लिखना होगा, लेकिन मैं इससे बचना पसंद करता हूं ताकि एन्कोडिंग नरक को रोका जा सके।

3
Ram Rachum 27 मई 2011, 01:42

2 जवाब

सबसे बढ़िया उत्तर

कोशिश करें ugettext_lazy

https://docs.djangoproject.com/hi/1.3/topics/i18n/internationalization/#lazy-translation

Django मॉडल में हमेशा आलसी अनुवाद का उपयोग करें।

1
Yuji 'Tomita' Tomita 21 मार्च 2012, 05:00

Ugettext केवल स्ट्रिंग्स को अनुवाद योग्य के रूप में चिह्नित करता है। यह आपके लिए कोई अनुवाद नहीं करता है। आपको भाषा फ़ाइलें (.mo और .po) बनानी होंगी और फिर LANGUAGE_CODE सेटिंग को मिलान करने के लिए सेट करना होगा। अधिक जानकारी के लिए अंतर्राष्ट्रीयकरण और स्थानीयकरण पर Django दस्तावेज़ पढ़ें।

1
Chris Pratt 27 मई 2011, 01:51