2011-08-17 4 views
4

이것은 매우 일반적인 질문 일 수 있지만 많은 인터넷 검색 결과 아직 유용한 답변을 찾을 수 없습니다.클라이언트의 두 자로 된 언어 코드 받기

내 사이트는 영어로만되어 있지만 사용자의 세션 기록을 유지하고 클라이언트의 언어를 받아야합니다. 우선 클라이언트 언어의 쉼표로 구분 된 목록 인 우선 HTTP_ACCEPT_LANGUAGE 헤더의 언어 정보를 우선 순위가 높은 우선 순위 즉 첫 번째 언어를 기본 언어로 사용할 수 있음을 읽었습니다.

저는 장고에서 클라이언트 언어의 2 자리 언어 코드를 얻고 싶습니다. 예 :

en-gb, en-us      en 
fr-fr, en-au      fr 
zh, en-us; q=0.8, en; q=0.6  zh 

어떻게하면됩니까? 머리글을 직접 파싱해야합니까? 장고에 내장 된 언어 목록이 있습니까?

모든 언어 코드 목록이 있습니까?

감사합니다.

+0

나는 그것도 생각했지만 그것이 내가 필요한 것을 성취하기위한 신뢰할 수있는 방법인지 다시 확인하고 싶었다. 고맙습니다. –

답변

5

사용 translation.get_language_from_request : 당신이하려는 이유 그런데

from django.utils import translation 

def view(request): 

    client_lang = translation.get_language_from_request(request) 

? 당신이 LocaleMiddleware을 가지고 있다면 이 request.LANGUAGE_CODE을 사용하여 언어를 얻을 수 있기 때문에 i18n and l10n에 대한 django 지원을 점검 했습니까?

+0

이것이 'HTTP_ACCEPT_LANGUAGE'와 같은 생각이 아닙니다. 브라우저의 기본 언어가 아닌 사이트를 볼 때 사용하는 언어입니다. 그렇습니까? – agf

관련 문제