Настройка Weblate

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

Подсказка

You can also customize Weblate look in Настройка внешнего вида.

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

Neither internal interfaces nor templates are considered a stable API. Please review your customizations for every upgrade, the interfaces or their semantics might change without notice.

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

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

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

Подсказка

When using Docker, you can place Python modules in /app/data/python/ (see Тома контейнеров Docker’а), so they can be loaded by Weblate, for example from a settings override file.

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

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

  2. Within it, create a pyproject.toml file to describe the package:

    [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. Create a folder for the Python module: src/weblate_customization

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

  5. This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.

  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>, он охватывает все описанные ниже темы.

Custom quality checks, add-ons, automatic suggestions and auto-fixes

To install your code for Пользовательские автоматические исправления, Написание собственных проверок, Пользовательский машинный перевод or Создание надстройки in Weblate:

  1. Place the files into your Python module containing the Weblate customization (see Создание модуля Python or Customizing code).

  2. Add its fully-qualified path to the Python class in the dedicated settings:

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