Начало участия в разработке Weblate¶
Понять исходный код Weblate, пройдя через Исходный код Weblate, Фронтэнд Weblate и Внутреннее устройство Weblate.
Начало работы с кодовой базой¶
Ознакомьтесь с кодовой базой Weblate, попробовав исправить ошибки, помеченные как good first issue.
Вы можете начать работать над этими вопросами, не спрашивая. Просто сообщите об этом в выпуске, чтобы было ясно, что кто-то работает над этим вопросом.
Запуск Weblate локально¶
Самый удобный подход для начала разработки Weblate — следовать Установка из исходников. Это позволит вам получить среду Python с редактируемыми исходными кодами Weblate.
Склонируйте исходный код Weblate:
git clone https://github.com/WeblateOrg/weblate.git cd weblate
Установите Weblate и все зависимости, полезные для разработки:
uv sync --all-extras --dev
Запустите сервер разработки:
uv run weblate runserver
В зависимости от ваших настроек, возможно, вы захотите запустить обработчики Celery:
uv run ./weblate/examples/celery start
Чтобы запустить тесты (см. Локальное тестирование Weblate для получения более подробной информации):
. scripts/test-database.sh uv run pytest
См. также
Запуск Weblate локально внутри Doсker¶
Если у вас установлены Docker и docker-compose-plugin, вам понадобится дополнительный инструмент jq, который можно установить через ваш любимый менеджер пакетов. Затем вы можете запустить среду разработки, просто выполнив:
./rundev.sh
Он создаст и запустит образ Docker для разработки. Weblate будет работать по адресу <http://127.0.0.1:8080/>, и вы можете войти как пользователь admin с паролем admin. Новая установка пуста, поэтому вы, возможно, захотите продолжить с Добавление проектов и компонентов перевода.
Weblate настроен на использование контейнера maildev в качестве почтового сервера. Доставленные электронные письма можно увидеть по адресу <http://127.0.0.1:1080/>.
Dockerfile и docker-compose.yml для этого находятся в каталоге dev-docker. Для облегчения доступа к базе данных во время разработки контейнер с PostgreSQL доступен на порту 5433.
Этот скрипт также принимает некоторые параметры. Чтобы выполнить тесты, запустите его с параметром test, а затем укажите любые аргументы команды Django test, например, запуск только тестов в модуле weblate.machine:
./rundev.sh test --exitfirst weblate/machine
Примечание
Убедитесь, что ваш контейнер Docker запущен и работает до того как запустить тесты. Вы можете проверить это, выполнив docker ps.
Чтобы вывести логи:
./rundev.sh logs
Чтобы остановить контейнер, запущенный в фоне:
./rundev.sh stop
Запуск скрипта без аргументов приведёт к повторному созданию контейнера Docker и его перезапуску.
Предупреждение
Этот контейнер не подходит для использования в рабочей среде. Безопасность принесена в жертву для упрощения разработки.
Инициализация вашего экземпляра devel¶
Возможно, вы захотите использовать import_demo для создания демонстрационных переводов и createadmin для создания администратора.
Если у вас также установлен Выставление счетов, вы можете использовать billing_demo для создания демонстрационного проекта биллинга.
Разработка Weblate c помощью PyCharm¶
PyCharm — это известная среда разработки для Python, вот некоторые рекомендации, как настроить ваш проект Weblate внутри неё.
Допустим, вы только что склонировали репозиторий GitHub в папку, просто откройте его с помощью PyCharm. Как только IDE будет открыта, первым шагом будет указание интерпретатора, который вы хотите использовать:
Выберите среду .venv, созданную с помощью uv sync --all-extras --dev, чтобы соответствовать настройке разработки из командной строки. Вы также можете позволить PyCharm создать среду Python для вас, но среда, управляемая uv, предпочтительнее:
Не забудьте установить зависимости после того, как интерпретатор настроен. При использовании предпочтительной среды, управляемой uv, выполните uv sync --all-extras --dev из консоли.
Второй шаг — ввести правильную информацию, чтобы интегрировать Django в PyCharm: Идея в том, чтобы запуск юнит-тестов происходил незамедлительно прямо из IDE. Для этого вам нужно указать путь к корню Django-проекта и путь к его настройкам:
Внимание, в параметре Django project root указывается путь к корню репозитория, а не подкаталога Weblate. Что касается настроек, вы можете использовать weblate/settings_test.py из репозитория, но вы можете создать свой собственный файл настроек и указать его в этом параметре.
Последний шаг — запустить сервер и установить точки останова в коде так, чтобы возможно было его отлаживать. Это можно сделать, создав новую конфигурацию Django Server:
Подсказка
Осторожнее с параметром No reload: Это предотвращает перезагрузку сервера в реальном времени, если вы изменяете файлы. Но это позволяет сохранить существующие точки останова отладчика, когда они обычно удаляются при перезагрузке сервера.