2010-02-25 3 views
0

다국어 Django 웹 사이트를 개발 중입니다. 영어와 히브리어의 두 가지 언어가 있습니다. 처음 방문하는 모든 방문자가 히브리어가 될 때까지 브라우저의 Accept-Language에 관계없이 기본 언어를 원합니다.장고의 언어 추측 알고리즘 사용자 정의

물론 언어를 영어로 변경하면 (세션에서 언어 쿠키 또는 키를 가져옵니다) 영어로 유지되어야합니다.

이 알고리즘을 직접 프로그래밍 할 수 있다고 생각하지만 어디에서 플러그를 꽂아야합니까? 프로젝트에서 사용하려면 어떻게해야합니까? 이 글을 읽는하여

답변

0

아무 것도 무시하지 않아도됩니다. 사용자가 이미 언어 쿠키를 가지고 있고 다른 방법으로 그를 set_language 리디렉션 뷰로 리디렉션하는 경우 첫 페이지 (또는 모든 페이지)를 확인할 수 있습니다. 그런 식으로하면 언어를 히브리어로 강요 할 수 있습니다.

사용자가 영어로 다시 변경하기로 결정하면 매우 쉽게 할 수 있습니다.

+0

이것은 내가 말한 것과 정확히 일치하는 작은 미들웨어를 만드는 영감을주었습니다. (미들웨어로 사용했기 때문에 모든 페이지에 자동으로 적용됩니다.) –

0

시작 : http://docs.djangoproject.com/en/1.1/topics/i18n/#topics-i18n

다음이 읽기 : http://docs.djangoproject.com/en/1.1/topics/i18n/internationalization/#topics-i18n-internationalization

각 RequestContext가이 액세스 세 가지 번역 관련 변수 :

국어 것은 튜플의 목록이다 에서 첫 번째 요소는 언어 코드 이고 두 번째 요소는 언어 이름 (현재 활성 01로 번역됨)입니다.로켈).

LANGUAGE_CODE는 사용자의 기본 언어이며 문자열입니다. 예 : en-us. ( 장고가 선호하는 언어를 발견하는 방법을 참조하십시오.)

LANGUAGE_BIDI 현재 로케일의 방향이다. True이면 오른쪽에서 왼쪽으로 쓰는 언어로 입니다 (예 : 히브리어, 아라비아어). 거짓 경우는 예를 들어 왼쪽에서 오른쪽 언어는이다 : 영어, 프랑스어, 독일어 등 을

당신이 RequestContext 확장자를 사용하지 않는 경우, 당신은 세 가지 태그 그 값을 얻을 수 있습니다 :

이게 당신이 묻는 것입니까?

+0

나는이 일 당신의 이전 링크, 읽기 : http://docs.djangoproject.com/en/1.1/topics/i18n/deployment/ 을하지만 알고리즘을 사용자 지정하는 방법에 대한 아무것도 표시되지 않았다. –

+0

@ cool-RR : "알고리즘 사용자 정의"? 요청에있는 설정을 덮어 쓰시겠습니까? "각 RequestContext가 세 개의 변환 관련 변수에 액세스 할 수 있습니다"를 사용하는 방법에 대해 묻고 있습니까? –

+0

아니요. 나는 장고가 사용자의 언어를 결정하는 알고리즘에 대해 이야기하고 있습니다. 'django.utils.translation.get_language_from_request' 함수를 확인하십시오. 나는 그것을 어떻게 든 무시하고 싶다. –