Can't switch language environment in Django

前端 未结 2 1888
走了就别回头了
走了就别回头了 2020-12-28 10:29

I have file locale/es/LC_MESSAGES/django.mo (and .po), ran makemessages and compilemessages. Definitely all messages are translated

in settings.py have:



        
相关标签:
2条回答
  • 2020-12-28 10:36

    According to the django docs

    http://docs.djangoproject.com/en/dev/topics/i18n/#id2

    LocaleMiddleware tries to determine the user's language preference by following this algorithm:

    * First, it looks for a django_language key in the current user's session.
    
    * Failing that, it looks for a cookie. 
    

    [...]

    *Failing that, it looks at the Accept-Language HTTP header. This header is sent by your browser and tells the server which language(s) you prefer, in order by priority. Django > tries each language in the header  until it finds one with available translations.
    
    * Failing that, it uses the global LANGUAGE_CODE setting.
    

    If you only need one language, 'es', you can disable the middleware. If you really need LocaleMiddleware active, try this recipe to override the headers from the client's browser http://www.djangosnippets.org/snippets/218/:

    enter code here
    
    class ForceDefaultLanguageMiddleware(object):
        """
        Ignore Accept-Language HTTP headers
    
        This will force the I18N machinery to always choose settings.LANGUAGE_CODE
        as the default initial language, unless another one is set via sessions or cookies
    
        Should be installed *before* any middleware that checks    request.META['HTTP_ACCEPT_LANGUAGE'],
        namely django.middleware.locale.LocaleMiddleware
        """
        def process_request(self, request):
            if request.META.has_key('HTTP_ACCEPT_LANGUAGE'):
                del request.META['HTTP_ACCEPT_LANGUAGE']
    
    0 讨论(0)
  • 2020-12-28 10:50

    I use this in my settings :

    TIME_ZONE = 'Europe/Paris'
    LANGUAGE_CODE = 'fr-FR'
    SITE_ID = 1
    USE_I18N = True
    

    So you should use something like 'es-ES'

    0 讨论(0)
提交回复
热议问题