Команда compilemessages
Команда compilemessages применяется для компиляции файлов перевода
с расширением .po в бинарные файлы .mo, которые Django
использует для подстановки переведенных строк в приложении.
Команда обрабатывает все каталоги locale в проекте и создает
скомпилированные версии файлов перевода для каждой поддерживаемой
локали. Обычно команда запускается после создания или обновления
файлов перевода командой makemessages.
Синтаксис
python manage.py compilemessages
Команда также принимает несколько опциональных параметров для управления процессом компиляции.
python manage.py compilemessages [--locale LOCALE] [--exclude EXCLUDE] [--use-fuzzy] [--ignore PATTERN]
Пример . С указанием локали
Чтобы скомпилировать файлы перевода только для конкретной локали:
python manage.py compilemessages --locale ru
Результат выполнения команды:
"processing file django.po in /app/locale/ru/LC_MESSAGES"
"compiled message file created: /app/locale/ru/LC_MESSAGES/django.mo"
Пример . С исключением локали
Можно исключить определенные локали из процесса компиляции:
python manage.py compilemessages --exclude ru --exclude uk
Пример . С использованием нечетких переводов
По умолчанию нечеткие переводы игнорируются при компиляции.
Чтобы включить их, используйте параметр --use-fuzzy:
python manage.py compilemessages --use-fuzzy
Пример . Игнорирование путей
Команда поддерживает игнорирование определенных каталогов
с помощью параметра --ignore:
python manage.py compilemessages --ignore venv --ignore .git
Полный пример рабочего процесса
Рассмотрим полный процесс создания и компиляции переводов в Django проекте:
# Создание файлов перевода для русской локали
python manage.py makemessages --locale ru
# Редактирование файла locale/ru/LC_MESSAGES/django.po
# Добавление переводов для строк
# Компиляция файлов перевода
python manage.py compilemessages --locale ru
# Проверка работы перевода в приложении
python manage.py shell
Результат проверки в shell:
from django.utils.translation import gettext as _
translated = _("Hello, world!")
print(translated)
Результат выполнения кода:
"Привет, мир!"
Смотрите также
-
команда
makemessages,
которая создает файлы перевода для интернационализации -
команда
runserver,
которая запускает сервер для разработки -
команда
migrate,
которая применяет миграции к базе данных -
команда
collectstatic,
которая собирает статические файлы проекта