АСК Легарус

Поиск

Релиз

Содержание

Нужна помощь?

Не нашли ответ на свой вопрос? Свяжитесь с нашей службой поддержки.

Обратиться в поддержку

Актуальная документация (версия 2.4.0) · версионный адрес

Локализация и переводы

Обновлено: 09 Октябрь 2026 Версия: 2.4.0

Локализация и переводы

Переводы интерфейса ASK хранятся в файлах GNU gettext (.po / .mo).

Структура

Путь Назначение
locale/ru/LC_MESSAGES/django.po Общие строки: config/, templates/partials/, templates/login/, строки из нескольких модулей
<app>/locale/ru/LC_MESSAGES/django.po Строки конкретного Django-приложения (Python-код и шаблоны templates/<app>/)
locale/ru/LC_MESSAGES/djangojs.po JavaScript-строки (в основном Django admin)

Пример: модуль finance — finance/locale/ru/LC_MESSAGES/django.po.

Django автоматически подхватывает locale/ в каждом установленном приложении; дополнительная настройка LOCALE_PATHS не требуется.

Рабочий процесс

  1. Добавить UI-строки на английском с gettext / gettext_lazy / {% trans %}.
  2. Извлечь новые строки:
source .venv/bin/activate
python manage.py makemessages -l ru --ignore=.venv
  1. Разнести строки из корневого locale/ по приложениям (после makemessages шаблоны из templates/<app>/ попадают в корневой файл):
python manage.py split_locale --locale ru
  1. Перевести новые msgstr в соответствующих .po файлах.
  2. Скомпилировать:
python manage.py compilemessages -l ru --ignore=.venv

Команда split_locale

python manage.py split_locale анализирует #:-ссылки в locale/ru/LC_MESSAGES/django.po и переносит записи в <app>/locale/ru/LC_MESSAGES/django.po, если все ссылки относятся к одному приложению.

  • --dry-run — показать статистику без записи файлов
  • --no-backup — не создавать django.po.bak

Папки шаблонов с нестандартными именами сопоставляются с приложениями автоматически (templates/sd/ → servicedesk, templates/invoice/ → finance и т.д.).

Строки, встречающиеся в нескольких модулях, остаются в корневом locale/.