Команда makemessages

Команда makemessages сканирует все файлы проекта в поисках строк, помеченных функциями перевода (например, gettext, gettext_lazy, ugettext и другими). На основе найденных строк она создаёт или обновляет файлы .po для указанных языков. Эти файлы содержат пары исходных строк и их переводов, которые позже компилируются командой compilemessages.

Основные параметры команды:

Синтаксис

pythonpython manage.py makemessages [options]

Пример

Создадим файл перевода для русского языка в приложении myapp. Для этого выполним команду:

pythonpython manage.py makemessages -l ru

После выполнения команды в директории locale/ru/LC_MESSAGES/ будет создан файл django.po, содержащий строки для перевода.

Пример

Обновим файлы перевода для всех языков из настройки LANGUAGES, добавив новые строки из шаблонов с расширением .html и .txt:

pythonpython manage.py makemessages -a

Команда просканирует все шаблоны и Python-файлы, обновляя существующие .po-файлы для каждого языка из списка LANGUAGES.

Пример

Создадим файл перевода для английского языка, указав дополнительные расширения для сканирования:

pythonpython manage.py makemessages -l en -e html,txt,js

Эта команда создаст файл django.po для английского языка, добавив в поиск строки из файлов с расширениями .html, .txt и .js.

Пример

Используем команду с отключением переноса длинных строк для упрощения редактирования файла перевода:

pythonpython manage.py makemessages -l ru --no-wrap

Результат выполнения команды:

python"processing locale ru"

Файл django.po создан без переносов длинных строк, что удобно для работы с системами контроля версий.

Смотрите также

  • команда compilemessages,
    которая компилирует файлы перевода для использования в приложении
  • команда runserver,
    которая запускает встроенный сервер разработки Django
  • команда migrate,
    которая применяет миграции базы данных
  • команда shell,
    которая запускает интерактивную оболочку Django