2010-12-30 5 views
3

나는 예를장고 i18n : 사이트 수준에서만 makemessages 가능합니까?

{% block title %}{% trans "Login" %}{% endblock %} 

또는 내가 django-admin.py makemessages --all -e .html,.template을 실행할 때 이제 로케일 쿠키

class AuthenticationFormWithLocaleOption(AuthenticationForm): 
    locale = forms.ChoiceField(choices = settings.LANGUAGES, 
           required = False, 
           initial = preselectedLocale, 
           label = _("Locale/language")) 

을 설정하는 데 사용 수정 된 인증 양식, 모든 응용 프로그램에 속하지 않는 내 사이트에 여러 개의 문자열을 가지고 사이트 디렉토리에서 에서 문자열을 모두 추출합니다. 파이썬, .html 및 .template 파일 (내 앱에있는 파일 포함).

 
Directory structure: 

sitename 
    myapp1 
    myapp2 

내 애플 리케이션에없는 모든 문자열을 추출 할 수있는 방법이 있나요 : 그 디렉토리 내에 내 애플 리케이션을 개발하기 때문이다?

내가 찾은 유일한 해결책은 사이트 디렉토리 구조 외부에서 앱 디렉토리를 이동하는 것이지만 내 경우에는 이해가되지 않는 bzr-externals (git submodules 또는 svn externals와 유사)를 사용하고 있습니다.

새 앱으로 번역해야하는 항목을 이동하는 것도 가능하지만 그게 유일한 합리적인 해결책인지는 잘 모릅니다.

답변

5

the documentation에 따르면 번역하려는 응용 프로그램에서 makemessages을 실행하면 해당 특정 응용 프로그램의 메시지 파일 만 만들 수 있습니다. makemessages '--ignore 인수를 사용하여 특정 폴더를 필터링 할 수도 있습니다. 두 사람 사이의 결과는 상당히 다를 것입니다.

+0

'-i' (또는'--ignore') 매개 변수는 실제로 작업을 수행합니다. 사이트 디렉토리의 배치 파일은 이제'django-admin.py makemessages --all -e .html, .template -i myapp1 \\ * -i myapp2 \\ *'입니다. 설명서에 대한 링크를 살펴보면 왜 사이트 별 번역이 가능한지 언급하지 않는 이유가 궁금합니다. 우분투 사용시 – AndiDog

+1

: -i "myapp1 /*.*"-i "myapp2 /*.*"(그건 그렇고 : 이것은 나에게도 유용했다. 나는 buildout을 사용하고 있으며, 계란에 많은 패키지가있다. Thanx –

+0

위의 내용에 대해 : 로케일 폴더를 넣고 makemessage 명령을 잘못된 방향으로 실행했습니다. buildout- dir, 프로젝트 디렉토리에서 수행해야합니다 (settings.py 파일이 있습니다). 따라서 무시할 필요는 없습니다. 그러나 우분투 형식에 대한 내 의견은 유용 할 수 있습니다. –