Настройка Weblate

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

Подсказка

Вы также можете настроить внешний вид Weblate в Настройка внешнего вида.

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

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

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

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

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

Подсказка

При использовании Docker вы можете размещать модули Python в /app/data/python/ (см. Тома контейнеров Docker’а), чтобы они могли быть загружены Weblate, например, из файла переопределения настроек.

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

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

  2. Внутри него создайте файл pyproject.toml для описания пакета:

    [build-system]
    requires = ["uv_build>=0.8.18,<0.9.0"]
    build-backend = "uv_build"
    
    [project]
    name = "weblate-customization"
    version = "0.1.0"
    description = "Add your description here"
    requires-python = ">=3.13"
    dependencies = []
    
  3. Создайте папку для модуля Python: src/weblate_customization

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

  5. Этот пакет теперь можно установить с помощью uv pip install -e. Более подробная информация приведена в документации по редактируемым пакетам.

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

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

weblate_customization
├── pyproject.toml
└── src
    └── weblate_customization
        ├── __init__.py
        ├── addons.py
        └── checks.py

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

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

Чтобы установить ваш код для Пользовательские автоматические исправления, Написание собственных проверок, Пользовательский машинный перевод или Написание дополнения в Weblate:

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

  2. Добавьте его полный путь к классу Python в соответствующих настройках:

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

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

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

# Automatic suggestions
WEBLATE_MACHINERY += ("weblate_customization.machinery.SampleTranslation",)