Настройка Weblate¶
Расширяйте и настраивайте Weblate, используя Django и Python. Вносите свои изменения в основной репозиторий Weblate’а, чтобы выгоду из них мог извлечь каждый. Это снижает ваши затраты на обслуживание; задачу подержания актуальности кода Weblate’а при изменении внутренних интерфейсов или рефакторинге берут на себя его сопровождающие.
Предупреждение
Ни внутренние интерфейсы, ни шаблоны не считаются стабильным API. Пожалуйста, при каждом обновлении просматривайте внесённые вами изменения, интерфейсы или их семантика могут измениться без предварительного уведомления.
См.также
Создание модуля Python¶
Если вы не знакомы с Python’ом, возможно, вы захотите посмотреть статью Python для начинающих, в которой объясняются основы и указаны дальнейшие учебные пособия.
При написании собственного кода на Python (называемого модулем) его необходимо разместить в каталоге, находящемся либо где-то в системном пути (обычно это путь вида /usr/lib/python3.7/site-packages/
), либо в каталоге Weblate’а, который также добавляется к путям поиска интерпретатора.
А ещё лучше превратить вашу настройку в правильный пакет Python:
Создайте каталог для вашего пакета (мы будем использовать weblate_customization).
В нём создайте описывающий пакет файл
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"], )
Создайте каталог для модуля Python (также назовём его
weblate_customization
), в котором будет содержаться наш код.В нём создайте файл
__init__.py
, который гарантирует, что Python сможет импортировать модуль.Теперь этот пакет можно установить командой pip install -e. Более подробную информацию можно найти в документе «Редактируемые» установки.
После установки модуль можно использовать в конфигурации Weblate’а (например,
weblate_customization.checks.FooCheck
).
Структура вашего модуля должна выглядеть примерно так:
weblate_customization
├── setup.py
└── 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
, чтобы собрать статические файлы для раздачи их клиентам.
Пользовательские проверки качества, надстройки и автоматические исправления¶
Для установки в Weblate собственного кода для автоматических исправлений, проверок или надстроек:
Разместите файлы в модуле Python, содержащем настройку Weblate’а (смотрите раздел Создание модуля Python).
Добавьте полное имя его класса 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",)