Почему функция makemessages для локализации языка Django игнорирует html-файлы? - PullRequest
7 голосов
/ 14 августа 2011

Я пытаюсь запустить локализацию языка Django в проекте, но makemessages всегда игнорирует шаблоны html в моей папке шаблонов.

Я запускаю python manage.py makemessages -a из корня проекта, и все строки, помеченные для перевода внутри файлов .py в любом месте проекта, успешно добавляются в файл .po.

Любая строка в шаблонах html, т. Е. {{ trans "String_to_translate" }} игнорируется и не добавляется в файл .po, даже если необходимый модуль загружается вверху шаблона, {% load i18n %}.

Чтобы проверить возможность исключения всей папки шаблонов из функции makemessages, я создал файл .py и включил туда строку для перевода, и он был успешно добавлен в файл .po.

С учетом всего сказанного, кто-нибудь знает, что может быть причиной этой проблемы? Заранее спасибо за помощь!

РЕДАКТИРОВАТЬ: Решение состояло исключительно из изменения синтаксиса от {{ trans "string" }} до {% trans "string" %}

Ответы [ 2 ]

4 голосов
/ 29 ноября 2013

Попробуйте создать символическую ссылку для папки templates в папке app.Затем вызовите makemessages из папки вашего приложения с переключателем символической ссылки django-admin.py makemessages --all --symlinks

cd /myproject
ln -s /myproject/templates /myproject/myapp/templates    
cd /myproject/myapp
django-admin.py makemessages --all --symlinks

makemessages игнорирует TEMPLATE_DIRS и INSTALLED_APPS.Каталог dir должен находиться внутри папки вашего приложения, а makemessages вызываться из папки вашего приложения.

3 голосов
/ 14 августа 2011

Ваша папка templates должна находиться в приложении, которое было указано в INSTALLED_APPS, или в каталоге, который был указан в TEMPLATE_DIRS - в вашем settings.py файле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...