2015-03-18 10 views
0

Я хочу получить язык браузера по умолчанию. Я попробовал код для этого, но ничего не работает для меня правильно.получить язык по умолчанию в браузере Django

Я могу получить массив всех языков, которые активируются в браузере из этого request.META['HTTP_ACCEPT_LANGUAGE']. Но как я могу получить тот язык, который установлен как значение по умолчанию.

ответ

1

Вы можете получить доступ текущего языка через request.LANGUAGE_CODE, как описано здесь: https://docs.djangoproject.com/en/1.7/ref/templates/api/#django-core-context-processors-i18n

+0

Я думаю, что 'request.LANGUAGE_CODE' дает значение языка из настроек не браузер. –

+0

, если вы используете 'django.template.context_processors.i18n'' request.LANGUAGE_CODE' определяется заголовком браузера 'Accept-Language', как описано здесь [https://docs.djangoproject.com/en/1.7/topics/i18n/ ] (https://docs.djangoproject.com/en/1.7/topics/i18n/) – rkorkosz

1

добавить промежуточный django.middleware.locale.LocaleMiddleware в setting.py после того, как промежуточного

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    # other middleware ... 
) 

и использовать request.LANGUAGE_CODE, чтобы получить язык браузера. источник http://www.janosgyerik.com/

Я использовал его, чтобы решить эту проблему в проекте

0

Джанго 1,10 просто изменить об этом:

: (1_10.W001) Установка MIDDLEWARE_CLASSES осуждается в Django 1,10 и имеет значение MIDDLEWARE. Поскольку вы установили MIDDLEWARE, значение MIDDLEWARE_CLASSES игнорируется.

Теперь сделать это вместо того, чтобы:

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    ....... 
] 
Смежные вопросы