2017-09-13 2 views
2

나는 이미 장고를 사용하여 영어로 웹 페이지를 구현했다. 중국어로 웹 페이지를 만들려고 할 때 질문이 생깁니다. 중국어로 된 페이지는 접두어 (/ ch /)로 구분됩니다.장고는 장고에서 구현 된 다국어 웹 페이지에서 언어 변경을 어떻게 인식 할 수 있습니까?

언어를 변경하기위한 버튼을 구현할 계획이지만 Django가 변경된 페이지를 어떻게 기억하는지 궁금합니다. 내 도메인이 'domain.com'이라고 가정하고, 버튼을 통해 언어가 중국어로 설정된 경우 사용자가 'domain.com'에 액세스 할 때 'domain.com/ch'를 열고 싶습니다. 그러나 단추를 클릭하면 Django (urls.py)의 url 패턴을 제어 할 수없는 것 같으며 언어에 해당하는 변수를 javascript에 저장해야합니다.

귀하의 조언에 감사드립니다.

답변

1

이것은 매우 복잡한 주제이지만 장고에서는 기본적으로 도움이되는 내용이 많이 있습니다. django의 로케일 부분은 언어 환경 설정을위한 쿠키를 볼 것입니다. & 브라우저에서 제공하는 요소가 사이트의 새로운 방문자를위한 기본 언어로 선택할 수 있다고 믿습니다.

장고에서는 외면 할 것이 이고 주제에 관한 문서는 여기에 있습니다. https://docs.djangoproject.com/en/1.11/topics/i18n/

여러 언어를 효과적으로 지원하려면 두 가지 설정이 필요합니다. USE_I18N은 언어 요소를 추가하고, USE_L10N는 번역의 주제에 등

날짜, 숫자, 통화 지역화 된 서식 할 수 있습니다 당신은 자바 스크립트 & 템플릿에 표시 얻을, 당신의 파이썬 코드에서 확인 문자열을 만들 필요로 give this a read 사용자가 적절한 변환 함수로 래핑됩니다.

루트 urls.py 파일에서 i18n_patterns을 사용하고 있는지 확인해야합니다.이 경우 URL에 현재 사용 가능한 언어 코드가 붙습니다. Javascript 번역 URL이있는 예는 다음과 같습니다.

from django.conf.urls.i18n import i18n_patterns 

urlpatterns = i18n_patterns(
    url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'), 
) 

당신은 당신의 설정이 분류되어있어 일단 URL은 i18n_patterns로 설정하고 템플릿의 일부 {% trans "" %} 태그는 메시지 카탈로그의 실제 생성을 테스트 할 수있다.

두 개의 admin 명령을 사용합니다. 첫 번째는 makemessages이고 변환을 생성 된 파일에 추가하고 compilemessages을 실행하여 작업을 완료합니다.

관련 문제