Настройка Weblate

Расширяйте и настраивайте Weblate, используя Django и Python. Вносите свои изменения в основной репозиторий Weblate’а, чтобы выгоду из них мог извлечь каждый. Кроме того, это снизит ваши затраты на поддержку этих изменений: в дальнейшем при изменении внутренних интерфейсов или рефакторинге поддержкой актуальности кода, включённого в Weblate, будут заниматься его кураторы.

Предупреждение

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

Создание модуля Python

Если вы не знакомы с Python, возможно, вы захотите посмотреть статью Python для начинающих, в которой объясняются основы и указаны дальнейшие учебные пособия.

При написании собственного кода на Python (называемого модулем), его необходимо разместить в каталоге, находящемся либо в системном пути (обычно это путь вида /usr/lib/python3.9/site-packages/), либо в каталоге Weblate, который также добавляется к путям поиска интерпретатора.

А ещё лучше превратить ваши модификации в полноценный пакет Python:

  1. Создайте каталог для вашего пакета (мы будем использовать weblate_customization).

  2. В нём создайте файл setup.py c описанием своего пакета:

    from setuptools import setup
    
    setup(
        name="weblate_customization",
        version="0.0.1",
        author="Your name",
        author_email="yourname@example.com",
        description="Sample Custom check for Weblate.",
        license="GPLv3+",
        keywords="Weblate check example",
        packages=["weblate_customization"],
    )
    
  3. Создайте каталог для модуля Python (также назовем его weblate_customization), в котором будет содержаться ваш код.

  4. В нём создайте файл __init__.py, чтобы Python смог импортировать этот модуль.

  5. Теперь этот пакет можно установить командой pip install -e. Более подробную информацию можно найти в документе «Редактируемые» установки.

  6. После установки этот модуль можно использовать в настройках Weblate (например, weblate_customization.checks.FooCheck).

Структура вашего модуля должна выглядеть примерно так:

weblate_customization
├── setup.py
└── weblate_customization
    ├── __init__.py
    ├── addons.py
    └── checks.py

Пример настройки Weblate можно найти по адресу <https://github.com/WeblateOrg/customize-example>, он охватывает все описанные ниже темы.

Пользовательские проверки качества, надстройки и автоматические исправления

Для добавления в Weblate собственного кода для автоматических исправлений, проверок или надстроек:

  1. Поместите файлы в модуль Python, содержащий ваши настройки Weblate (смотрите раздел Создание модуля Python).

  2. Добавьте полное имя нужного класса Python к соответствующему параметру (WEBLATE_ADDONS, CHECK_LIST или AUTOFIX_LIST):

# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)

# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)

# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)