2012-09-09 7 views
0

응용 프로그램의 Settings.py 파일에서 LANGUAGE_CODE를 변경하여 장고 응용 프로그램의 언어를 전환 할 수 있습니다.어떤 Django 국제화 파일이 사용되고 있습니까?

그러나 실제 텍스트의 출처를 모르겠습니다.

django/contrib/auth/locale/경로에는 표시중인 텍스트의 번역이 포함 된 여러 언어 용 디렉토리가 있습니다. 그러나 특정 언어의 .mo 파일을 새 이름으로 옮기면 장고를 다시 시작한 후에도 해당 언어의 텍스트가 계속 표시됩니다. 그렇다면이 텍스트는 실제로 어디에서 왔습니까?

또한 'en'로켈의 경우 번역 된 텍스트는 항상 ""(빈 문자열)입니다. 이 경우 ugettext_lazy가 입력 문자열을 반환하나요? 그렇지 않다면 영어 텍스트는 어디서 오는 것입니까?

답변

0

로컬 설치보다는 시스템 전체에서 장고 설치가 사용되었습니다.

내 응용 프로그램에서 로케일 디렉토리를 작성하면 시스템 전체 설치에 사용 된 문자열을 무시할 수 있습니다. 난 그냥 거기에. po 파일을 수정하고 그것을 컴파일합니다.

0

장고 관리자 또는 응용 프로그램에서 번역을 말하는 경우 차이가 있습니다. 언급 한 경로 .../contrib/auth/locale은 장고 관리자의 번역을 나타냅니다.

응용 프로그램 내에서 특별한 번역을하려면 프로젝트에 로케일/폴더가 있어야합니다. 이 폴더는 "django-admin.py makemessages"라는 django 특수 스크립트를 실행할 때 만들어집니다.

스크립트는 프로젝트 소스 트리 또는 응용 프로그램 소스 트리를 통해 실행되고 번역 표시된 모든 문자열을 추출합니다. locale/LANG/LC_MESSAGES 디렉토리에 메시지 파일을 작성 (또는 갱신)합니다. 예에서 파일은 locale/de/LC_MESSAGES/django.po가됩니다. 당신이 메시지 파일에 자신의 번역을 작성한 후

자세한 설명을 잊지 마세요, 당신이 당신의 메시지 파일 (*와 .po)을 만든 후 장고 국제화 documentation

을보고하십시오 이를 컴파일 :

컴파일 메시지가

당신이 당신의 메시지 파일을 생성 한 후

파일 - 각 t을 ime를 변경하면 gettext에서 사용할 수 있도록 효율적인 양식으로 컴파일해야합니다. django-admin.py compilemessages 유틸리티로이 작업을 수행하십시오.

이 도구는 사용 가능한 모든 .po 파일을 실행하고 gettext에서 사용하도록 최적화 된 이진 파일 인 .moo 파일 을 만듭니다.

django-admin.py compilemessages

그것 뿐이다

: django-admin.py compilemessages과 같이 실행하면 django-admin.py makemessages를 실행 한 동일한 디렉토리에. 귀하의 번역본을 사용할 준비가되었습니다.

+0

표준 Django 양식에서 서브 클래 싱 된 양식을 사용하고 있으므로 언급 한 디렉토리의 로케일 정보를 사용하는 것으로 보입니다. 응용 프로그램 자체에 대해 특별한 번역이 필요하지 않습니다. 모든 응용 프로그램에서 장고 문자열을 수정하고 싶습니다. 그래도 해당 디렉토리의 .po 파일을 수정하고 컴파일 메시지를 재실행하면 정보가 변경되지 않는 것 같습니다. 컴파일 된 .mo 파일을 다른 이름으로 옮기면 동작이 변경되지 않는다는 사실과 수수께끼 같은 사실입니다. 내 디렉토리 트리에 다른 .mo 파일이없는 것 같습니다. –

+0

우리가하는 일에 대한 샘플 코드와 기대하고있는 것을 제공 해주시겠습니까? 그것 없이는, 당신이 정말로 의미하는 것을 이해하기 어렵습니다. – saeed

+0

en .po 파일에서 영어 번역 중 하나를 변경하고 해당 응용 프로그램에 표시하려고합니다. 그게 다야! –

관련 문제