__init__.py 파일에 대한 번역을 저장할 로케일 경로를 찾을 수 없습니다.


106

Django 앱을 번역하려고합니다. {% trans %}내 템플릿에 문자열을 만들었습니다 . 그러나 내 앱 폴더에서 다음 명령을 실행하면 오류 메시지가 나타납니다.

$ django-admin.py makemessages -l fr 
CommandError: Unable to find a locale path to store translations for file __init__.py`

내가 뭘 잘못 했어?

답변:


157

먼저을 사용하여 locale폴더 를 만들어야합니다 mkdir locale. 앱 폴더 내에서 명령을 실행하는 경우 locale해당 앱 폴더 내에 폴더 가 필요 합니다.


감사합니다. 이미 사용 가능한 경우 makemessages해당 locale디렉토리 에서 명령을 실행하십시오 .
SaeX

4
Django 1.9에서는 그렇지 않은 LOCALE_PATHS경우에도 정의해야 locale합니다. 컴파일 된 텍스트는 검색 할 수 없습니다.
Wtower

이 폴더에는 's' 가 없으며 앱 폴더에 있어야합니다 ( LOCALE_PATHS구성 할 필요가 없음 )
tobiasBora

28

실제로 로케일 폴더의 위치를 ​​구성 할 수 있습니다. settings.py에서 다음을 추가하십시오.

LOCALE_PATHS = (
    PROJECT_ROOT + '/website/locale', )

그런 다음 번역하려는 각 언어에 대한 폴더를 만듭니다.

mkdir -p website/locale/de

2
실제로 각 언어에 대해 폴더를 만들 필요가 없습니다. 장고 - 관리자 makemessages 당신을 위해이 작업을 수행 할 것
MagicLAMP

혼란 스럽습니다. 모든 앱에 대해 하나의 항목을 만들어야합니까? 아니면 모든 앱의 모든 로케일을 동일한 로케일 폴더에 저장 하시겠습니까?
Vadorequest

12

문제는 명령이 앱 디렉토리가 아니라 프로젝트 디렉토리에서 실행된다는 것입니다. 문서의이 스 니펫은이를 설명합니다.

먼저을 사용하여 locale폴더 를 만들어야합니다 mkdir locale.

./manage.py makemessages[…] 현재 디렉토리 의 전체 소스 트리 에서 실행되고 번역 용으로 표시된 모든 문자열을 가져옵니다. conf / locale (Django 트리) 또는 locale (프로젝트 및 애플리케이션 용) 디렉토리에 메시지 파일을 생성 (또는 업데이트)합니다.

따라서 앱 디렉토리에서 명령을 실행합니다.

$ cd app
$ django-admin makemessages -l <locale>

… 또는을 사용하여 프로젝트 전체 로케일 디렉토리를 정의하고 거기에서 기본 디렉토리에서 LOCALE_PATHS실행할 수 있습니다 makemessages.

어느 쪽이든 ./locale/디렉토리가 있는지 확인하고 다음 을 사용하여 생성해야합니다.

$ mkdir locale

그렇지 않은 경우.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.