@maximkalga

Как принудительно установить нужный язык в Django 1.8?

Перевел сайт на голандский.
В настройках все выставил:
USE_I18N = True

LANGUAGE_CODE = 'nl'

LANGUAGES = (
    ('en', 'English'),
    ('nl', 'Holland'),
)

LOCALE_PATHS = (
    location('locale'),
)

Урлы без переводов, там такая логика.
Если закомментировать в settings 'django.middleware.locale.LocaleMiddleware', то язык голандский, но иногда, например при переходе на страницу результатов поиска, сам по себе опять становится английский. Если поиск без параметров, то все ок - голандский. Если же расмментировать LocaleMiddleware, то всегда англ.

Добавил еще такой middleware, тоже не помогло:
class ForceDefaultLanguageMiddleware(object):
    def process_request(self, request):
        if request.META.has_key('HTTP_ACCEPT_LANGUAGE'):
            del request.META['HTTP_ACCEPT_LANGUAGE']


Видел такое описание:
Джанго определяет язык пользователя так (если не нашёл, то идёт дальше):

Ищет ключ django_language в сессии пользователя
Ищет в cookies
Ищет Accept-Language в HTTP-заголовках, и пытается отыскать разрешённые в приложении (в переменной LANGUAGES) языки
Использует значение переменной LANGUAGE_CODE


Как железно задать голандский язык навсегда? Англ. не используется, а служит только для меток при копировании сайта и переводе его на другие языки(отдельные сайты).
  • Вопрос задан
  • 284 просмотра
Решения вопроса 1
@maximkalga Автор вопроса
Все оказалось намного проще. Нужно было просто оставить один язык:
LANGUAGES = (
('nl', 'Holland'),
)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zigen
@zigen
Попробуйте добавить
USE_L10N = True
в settings
Ответ написан
Комментировать
zenwalker
@zenwalker
0xABADBABE
Можно вызвать в middleware:
from django.utils import translation
translation.activate('hl')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы