2013-01-28 6 views
4

나는 잠시 동안 en-gb 언어 코드로 개발 해왔다. 이제 릴리스 날짜에 가까워짐에 따라 기본 언어를 en-us으로 바 꾸었습니다.하지만 내가 처음 수행하는 것은 request.LANGUAGE_CODE이며, 등록되지 않은 사용자의 경우에도 en-gb으로 설정됩니다.Django : 기본 언어를 변경할 수 없습니다.

참고로 저는 실제로 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은 장고가 사용할 언어를 찾을 수없는 경우에만 기본값입니다. 세션에 이미 en-gb이 이미 있거나 장고가 선택하는 쿠키가있을 것입니다.

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

감사합니다. 모든 노력에도 불구하고 런던의 미국 환경 (프록시, 브라우저 로켈 언어 전환기, 시크릿 모드)을 모방하려고 노력했지만 성공하지 못했으며 미국에서 친구를 불러 사이트를 테스트했습니다. 그리고 그는 기본적으로 미국 영어를 얻습니다. 그게 다 좋다. :디 – Houman

0

how Django discovers language preference을 살펴보십시오.

귀하의 경우에는 LocaleMiddleware이 활성화되어 있고 브라우저가 요청할 때마다 Accept-Language 헤더에서 귀하의 언어를 사용하고 있습니다. 많은 사용자가이를 알지 못해도 시스템의 기본 설정과 상관없이 브라우저의 환경 설정에서 해당 헤더를 변경할 수 있습니다. 예를 들어, Firefox에서는 환경 설정, 내용, 선택 (언어 아래)에서이를 변경할 수 있습니다.

관련 문제