Ответ 1
Оказывается, вам нужно создать locale
папку первого использования mkdir locale
. Если вы запускаете команду из папки приложения, вам нужна папка locale
в этой папке приложения.
Я пытаюсь перевести приложение Django. Я создал несколько строк с {% trans %}
в моих шаблонах. Однако, когда я выполняю следующую команду в моей папке приложения, я получаю сообщение об ошибке:
$ django-admin.py makemessages -l fr
CommandError: Unable to find a locale path to store translations for file __init__.py`
Что я сделал не так?
Оказывается, вам нужно создать locale
папку первого использования mkdir locale
. Если вы запускаете команду из папки приложения, вам нужна папка locale
в этой папке приложения.
На самом деле вы можете настроить, где находится папка локали. В файле settings.py добавьте:
LOCALE_PATHS = (
PROJECT_ROOT + '/website/locale', )
Затем создайте папку для каждого из языков, которые вы хотите перевести:
mkdir -p website/locale/de
Проблема заключается в том, что команда не запускается из каталога приложения, а из каталога проекта. Этот фрагмент из документов объясняет это:
Оказывается, вам нужно сначала создать папку locale
, используя mkdir locale
.
./manage.py makemessages
[...] Запускает все дерево исходных текстов текущего каталога и вытаскивает все строки, помеченные для перевода. Он создает (или обновляет) файл сообщения в каталоге conf/locale (в дереве Django) или локали (для проекта и приложения).
Итак, вы либо запускаете команду из каталога приложения:
$ cd app
$ django-admin makemessages -l <locale>
... или вы определяете каталог с широким локали проекта с помощью LOCALE_PATHS
, и вы можете запустить makemessages
из основного каталога там.
В любом случае, вы должны убедиться, что каталог ./locale/
присутствует и создать его с помощью
$ mkdir locale
если это не так.