Настройка Weblate

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

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

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

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

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

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

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

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

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

    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",)

# Addons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)