2013-01-28 5 views
4

Я уже некоторое время разрабатываю код en-gb. Теперь, приближаясь к дате выпуска, я собирался переключить язык по умолчанию на en-us, но независимо от того, что я делаю, начальный request.LANGUAGE_CODE установлен на en-gb даже для незарегистрированных пользователей.Django: Невозможно изменить язык по умолчанию

FYI, я бы очень хотел оставить time_zone в Лондоне и просто изменить язык по умолчанию на американский английский. На данный момент я изменил оба, чтобы заставить его работать, но до сих пор нет радости.

#TIME_ZONE = 'Europe/London' 
TIME_ZONE = 'US/Eastern' 

LANGUAGE_CODE = 'en-us' 
#LANGUAGE_CODE = 'en-gb' 

ugettext = lambda s: s 

LANGUAGES = (
    ('en', ugettext('American English')), 
    ('en-gb', ugettext('British English')) 
) 

USE_I18N = True 
USE_L10N = True 
USE_TZ = True 

Что я могу пропустить? Спасибо

ответ

4

LANGUAGE_CODE только по умолчанию, когда Django не может найти какой язык использовать. Вероятно, у вас уже есть en-gb в вашей сессии или куки-файлы, которые Django набирает.

Для получения дополнительной информации о шагах, предпринятых Django для определения языка запроса, прочитайте How Django discovers language preference.

+0

Спасибо Симеон, это странно, даже в браузере «Частный режим», в котором не должно быть куки, я до сих пор получаю en-gb. несмотря на то, что я изменил свой браузерный язык и в США. Вы отправили ссылку на Django 1.3. И страница удалена для 1.4. Странно .. все еще расследует – Houman

+1

Для Django 1.4 можно найти здесь: https://docs.djangoproject.com/en/1.4//topics/i18n/translation/#how-django-discovers-language-preference –

+0

Спасибо. Несмотря на все мои усилия, пытаясь подражать американской среде здесь, в Лондоне (прокси, язык языкового переключателя браузера, режим инкогнито), мне не удалось и позвонил другу в США для тестирования сайта. И он получает американский английский по умолчанию. Так что все хорошо. : D – Houman

0

Посмотрите на how Django discovers language preference.

В вашем случае, я уверен, вы включили LocaleMiddleware, и он получает ваш язык из заголовка Accept-Language, который ваш браузер отправляет с каждым запросом. Вы можете изменить этот заголовок в настройках вашего браузера, хотя многие пользователи не знают об этом и не останавливаются на том, что было по умолчанию в их системе. В Firefox, например, вы можете изменить это на Предпочтения, Контент, Выбрать (под Языками).

Смежные вопросы