Начало участия в разработке Weblate

Чтобы получить некоторое представление об исходном коде Weblate для начала взгляните на разделы Исходный код Weblate, Фронтэнд Weblate и Внутреннее устройство Weblate.

Начало работы с нашей кодовой базой

Если ищете какие-нибудь ошибки, исправляя которые можно ознакомиться с кодовой базой Weblate , то посмотрите на те, которым присвоена метка good first issue.

Запуск Weblate локально

Самый удобный подход к разработке Weblate — это создать собственное виртуальное окружение (virtualenv) для него с редактируемой версией исходного кода, как описано в Установка из исходников.

  1. Склонируйте исходный код Weblate:

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Создайте виртуальное окружение:

    virtualenv .venv
    .venv/bin/activate
    
  3. Установите Weblate (для этого потребуются некоторые системные зависимости, см. Установка из исходников):

    pip install -e .
    
  1. Установите все зависимости, полезные для разработки:

    pip install -r requirements-dev.txt
    
  2. Запустите сервер разработки:

    weblate runserver
    
  3. В зависимости от ваших настроек, возможно, вы захотите запустить обработчики Celery:

    ./weblate/examples/celery start
    
  4. Чтобы запустить тесты (см. Запуск тестов локально):

    . scripts/test-database
    ./manage.py test
    

Запуск Weblate локально внутри Doсker

Если у вас установлен Docker и docker-compose, то вы можете развернуть среду для разработки, просто запустив:

./rundev.sh

Это создаст и запустит образ Docker для разработки. Weblate будет запущен на <http://127.0.0.1:8080/> и вы сможете зайти в него под пользователем admin с паролем admin. Новая установка будет пустой, так что дальше вам скорей всего надо будет добавить туда проекты и компоненты перевода.

Dockerfile и docker-compose.yml для этого расположены в каталоге dev-docker.

Этот скрипт также принимает некоторые параметры. Чтобы выполнить тесты, запустите его с параметром test, а затем укажите любые аргументы команды Django test, например:

./rundev.sh test --failfast weblate.trans

Примечание

Убедитесь, что ваш контейнер Docker запущен и работает до того как запустить тесты. Вы можете проверить это, выполнив docker ps.

Чтобы вывести логи:

./rundev.sh logs

Чтобы остановить контейнер, запущенный в фоне:

./rundev.sh stop

Запуск скрипт без аргументов пересоздаст и перезапустит контейнер Docker.

Примечание

Такая конфигурация не подходит для использования в качестве полноценной рабочей системы: она включает в себя несколько небезопасных хаков, которые, однако, упрощают разработку.

Разработка Weblate c помощью PyCharm

PyCharm — это известная среда разработки для Python, вот некоторые рекомендации, как настроить ваш проект Weblate внутри неё.

Допустим, вы только что склонировали репозиторий c GitHub’а, тогда просто откройте ту папку, куда вы его склонировали, в PyCharm. Как только IDE откроется, первым шагом будет указать интерпретатор, который вы хотите использовать:

../_images/pycharm-1.png

Вы можете либо позволить PyCharm создать виртуальное окружение за вас, либо выбрать уже существующее:

../_images/pycharm-2.png

Не забывайте установить зависимости после того, как интерпретатор будет установлен: вы можете сделать это или через консоль (консоль в IDE будет использовать ваше виртуальное окружение по умолчанию), или через интерфейс, когда вы получите предупреждение об отсутствующих зависимостях.

Второй шаг — ввести правильную информацию, чтобы интегрировать Django в PyCharm: идея в том, чтобы запуск юнит-тестов происходил незамедлительно прямо из IDE. Для этого вам нужно указать путь к корню Django-проекта и путь к его настройкам:

../_images/pycharm-3.png

Be careful, the Django project root is the root of the repository, not the weblate sub-directory. About the settings, you could use the weblate/settings_test.py from the repository, but you could create your own setting and set it there.

Последний шаг — сделать возможным запускать сервер и устанавливать точки останова в коде так, чтобы возможно было его отлаживать. Это можно сделать, создав новую конфигурацию Django Server:

../_images/pycharm-4.png ../_images/pycharm-5.png

Подсказка

Осторожнее с параметром No reload: если вы его включите, то сервер не будет автоматически перезапускаться после модификации файлов. Но это позволяет существующим точкам останова оставаться на своих местах, так как в противном случае они бы сбрасывались при перезапуске.

Bootstrapping your devel instance

Возможно, вы захотите использовать import_demo, чтобы создать демонстрационные переводы и createadmin, чтобы создать пользователя-администратора.