2012-03-09 2 views
1

django 시스템을 테스트 중이므로 프로젝트와 응용 프로그램을 시작했습니다. i18n 시스템에 문제가 있습니다.django 메시지 파일이 프로젝트 폴더에서 작동하지만 앱 폴더에서 작동하지 않습니다.

  • 저는 app의 view.py에서 _() 함수를 사용했습니다.
  • 프로젝트의 settings.py 파일에있는 MIDDLEWARE_CLASSES에 'django.middleware.locale.LocaleMiddleware'행을 넣었습니다.
  • app 폴더에서 django-admin.py makemessages -l tr을 실행합니다.
  • app 폴더에 django-admin.py compilemessages를 실행합니다.

서비스를 실행하면 작동하지 않습니다. 내가 여기에서 그리고 다른 장소에서 검색 한 후에 나는 장고가이 메시지 파일을 찾는 방법을 본다. 먼저 프로젝트의 폴더 다음에 app의 폴더를 찾습니다. 다른 곳도 있습니다.

메시지 파일을 프로젝트 폴더로 옮겼습니다. 다시 응용 프로그램의 폴더에 로케일 폴더를 이동하고 다시 작동하지 않았다.

이유를 이해해야합니다. 모든 번역, 메시지 파일을 관련 앱에 넣고 싶습니다.

감사합니다,


은 내가 INSTALLED_APPS 설정으로 응용 프로그램의 이름을 추가하는 것을 잊었다 문제를 발견했다. 추가하면 작동합니다.

답변

1

나는 그것을 직접 테스트하여 작동하는 것으로 나타났습니다.

올바른 방법으로 코드에서 사용 하시겠습니까?

응용 프로그램/views.py : 그것은 프로젝트 폴더에 때 로케일 폴더를 일하지만 응용 프로그램 폴더에 로케일 폴더를 이동하는 경우, 그것은 작동하지 않습니다

from django.utils.translation import ugettext as _ 
from django.contrib import messages 
...some code here... 
if saved_changes: 
    messages.success(request, _('Item \'%s\' was saved.') % item.name) 
+1

. ./project_name/app_name/locale/tr/LC_MESSAGES/django.po 및 이 작품 .mo : 이 작동하지 않습니다 ./project_name/locale/tr/LC_MESSAGES/django.po 및 을 .mo 모든 것은 동일합니다. 방금 폴더를 옮깁니다. –

+0

로캘 파일을 이동할 수 없다고 생각합니다. 앱과 프로젝트를 위해 별도로 로케일을 생성해야합니다. ./project/app/locale/tr/LC_MESSAGES/ 디렉토리 .po 및 .mo 파일에서 삭제하고 'django-admin.py makemessages -l tr' 앱 디렉토리로 이동해보십시오. 그런 다음 _을 (를) 엽니 다. Lokalize 나 POEdit과 같은 번역 소프트웨어의 /project/app/locale/tr/LC_MESSAGES/django.po_ 파일은 모든 문자열을 번역합니다. 변경 사항을 저장하고 앱의 디렉토리로 돌아가서'django-admin.py compilemessages'를 실행하십시오. –