Настройка 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:
Создайте каталог для вашего пакета (мы будем использовать weblate_customization).
Within it, create a
pyproject.tomlfile 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 = []
Create a folder for the Python module:
src/weblate_customizationВ нём создайте файл
__init__.py, чтобы Python смог импортировать этот модуль.This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.
После установки этот модуль можно использовать в настройках 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>, он охватывает все описанные ниже темы.
Изменение логотипа¶
Создайте простое приложение Django, содержащее статические файлы, которые вы хотите перезаписать (смотрите раздел Создание модуля Python).
Стилизуемые элементы расположены в следующих файлах:
icons/weblate.svgЛоготип, отображаемый на панели навигации.
logo-*.pngВеб-иконки для разных разрешений экрана и веб-браузеров.
favicon.icoВеб-иконка, используемая устаревшими браузерами.
weblate-*.pngАватары ботов и анонимных пользователей. Некоторые веб-браузеры используют их также в качестве картинок для ярлыков на стартовой странице.
email-logo.pngИспользуется в уведомлениях по электронной почте.
Добавьте его в
INSTALLED_APPS:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
Запустите
weblate collectstatic --noinput, чтобы собрать статические файлы, предназначенные для передачи клиентам.
Custom quality checks, add-ons, automatic suggestions and auto-fixes¶
To install your code for Пользовательские автоматические исправления, Написание собственных проверок, Пользовательский машинный перевод or Создание надстройки in Weblate:
Place the files into your Python module containing the Weblate customization (see Создание модуля Python or Customizing code).
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",)