Почему Django не создает файлы локали из файлов шаблонов в другом каталоге? - PullRequest
5 голосов
/ 16 сентября 2010

Информация о версии:

Предварительная альфа-версия Django 1.3 SVN-13858

Ubuntu GNU / Linux 10.10

Я совершенно новичок в i18n и l10n в Django ив настоящее время я пытаюсь сделать свой проект Django доступным на голландском языке (в дополнение к языку по умолчанию: английский).Я пытался применить инструкции, данные в http://docs.djangoproject.com/en/dev/topics/i18n/translation/ и http://www.djangobook.com/en/2.0/chapter19/, но безуспешно.Я не знаю, связано ли это с тем, что моя структура каталогов и файлы шаблонов находятся в совершенно другом каталоге (я имею в виду не подкаталог в моем каталоге проекта Django).Мой каталог проекта выглядит следующим образом:

/home/emre/mydjango/myproject
/home/emre/mydjango/myproject/myapp1
/home/emre/mydjangotemplates
/home/emre/mydjangotemplates/myapp1

В каталогах myproject и myapp1 я попытался выполнить следующую команду:

django-admin.py makemessages -l nl

Но получил следующую ошибку:

Error: This script should be run from the Django SVN tree or your project or 
app tree. If you did indeed run it from the SVN checkout or your project or 
application, maybe you are just missing the conf/locale (in the django tree)
or locale (for project and application) directory? It is not created automatically,
you have to create it by hand if you want to enable i18n for your project or
application.

Итак, я попытался создать каталоги locale в каталогах myproject и myapp1.После этого я снова выполнил вышеупомянутую команду (один раз в проекте и один раз в каталоге приложения), и на этот раз без каких-либо ошибок или предупреждений он сказал:

processing language nl

Я проверил каталоги локали и увидел, что они былизаполнены подкаталогами, но файлов .po вообще не было:

$ tree
.
 `-- nl
     `-- LC_MESSAGES

2 directories, 0 files

Я дважды проверил, что у меня есть файлы .html (файлы шаблонов) в home / emre / mydjangotemplates и что они включают{% load i18n%} и некоторые строки, такие как {% trans "Кусок английского текста"%}.

Чего мне не хватает?Должен ли я вызывать команду makemessages django-admin.py с другими параметрами?Почему Django не создает файлы .po, хотя у меня есть текст для перевода в моих файлах шаблонов .html?

1 Ответ

9 голосов
/ 16 сентября 2010

makemessages просматривает только каталоги под текущим каталогом.Вы можете попробовать создать символическую ссылку из вашего проекта в каталоге шаблонов и добавить -s, чтобы он следовал по символическим ссылкам .

...