Określ język użytkownika w Pyramid

Chcę umiędzynarodowić mój projekt. Postępowałem zgodnie z opisem w oficjalnej dokumentacji, ale lokalizacja nadal nie działa. Oto, jak próbuję pobrać ustawienia użytkownika:

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

Alerequest nie ma atrybutu „nazwa_lokalna”, ale ma „Język akceptujący”, a więc kiedy funkcjaget_local_name nie znajduje „żądania_lokalnego” w żądaniu, wywołuje inną funkcję:

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

Jak mogę zobaczyćnegotiator spróbuj uzyskać lokalne z globalnego środowiska, ale jeśli nie można tego zrobić, ustaw jego wartość z config. I nie mogę zrozumieć, dlaczego Pyramid nie pobiera locale bezpośrednio z pola żądania „Accept-Language”?

Jak mogę określić poprawne ustawienia regionalne?

questionAnswers(3)

yourAnswerToTheQuestion