में उपयोगकर्ता भाषा का निर्धारण करें मैं अपनी परियोजना के लिए अंतर्राष्ट्रीयकरण करना चाहता हूं। मैंने आधिकारिक दस्तावेज में इसका वर्णन कैसे किया, लेकिन स्थानीयकरण अभी भी काम नहीं करता है। यहाँ कैसे मैं उपयोगकर्ता का स्थान पाने की कोशिश है:पिरामिड
def get_locale_name(request):
""" Return the :term:`locale name` associated with the current
request (possibly cached)."""
locale_name = getattr(request, 'locale_name', None)
if locale_name is None:
locale_name = negotiate_locale_name(request)
request.locale_name = locale_name
return locale_name
लेकिन request
attr "local_name" नहीं है, लेकिन यह है "स्वीकार-भाषा" और इतने समारोह get_local_name
अनुरोध में "local_name" नहीं मिल रहा है जब , यह एक समारोह कॉल:
def negotiate_locale_name(request):
""" Negotiate and return the :term:`locale name` associated with
the current request (never cached)."""
try:
registry = request.registry
except AttributeError:
registry = get_current_registry()
negotiator = registry.queryUtility(ILocaleNegotiator,
default=default_locale_negotiator)
locale_name = negotiator(request)
if locale_name is None:
settings = registry.settings or {}
locale_name = settings.get('default_locale_name', 'en')
return locale_name
मैं कैसे देख सकता negotiator
कोशिश वैश्विक वातावरण से स्थानीय प्राप्त करने के लिए, लेकिन यह है कि config से अपने निर्धारित मूल्य करने के लिए नहीं कर सकते हैं। और मुझे समझ में नहीं आ रहा है कि क्यों पिरामिड अनुरोध के क्षेत्र से सीधे "स्वीकार्य भाषा" लोकेल नहीं मिलता है?
और, मैं लोकेल का सही निर्धारण कैसे कर सकता हूं?
लेकिन स्वीकृति_भाषा कारण स्वीकार करने से ऑब्जेक्ट को स्वीकार करने की कोई ज़रूरत नहीं है स्वीकार्य है() और स्वीकार्य() के पहले से ही विधि है और विधि स्वयं best_match() है। यह पिरामिड संस्करण 1.2 के लिए प्रयास है बहुत धन्यवाद – Denis
@ डेनिस: आप वास्तव में सही हैं; 'accept_language' पहले से ही 'स्वीकार करें' का एक उदाहरण है। सही किया। –
@ मार्टिजिन पीटर्स वैसे भी धन्यवाद, सभी ठीक काम करते हैं)) – Denis