Настройка Weblate

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

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

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

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

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

To write a file with custom Python code (called a module), a place to store it is needed, either in the system path (usually something like /usr/lib/python3.9/site-packages/) or in the Weblate directory, which is also added to the interpreter search path.

Добавлено в версии 3.8-5: 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. В нём создайте файл 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).

Your package structure should look like this:

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