Настройка Weblate
Расширяйте и настраивайте Weblate, используя Django и Python. Вносите свои изменения в основной репозиторий Weblate’а, чтобы выгоду из них мог извлечь каждый. Кроме того, это снизит ваши затраты на поддержку этих изменений: в дальнейшем при изменении внутренних интерфейсов или рефакторинге поддержкой актуальности кода, включённого в Weblate, будут заниматься его кураторы.
Предупреждение
Ни внутренние интерфейсы, ни шаблоны не считаются стабильным API. При каждом обновлении просматривайте внесённые вами изменения: интерфейсы и их семантика могут измениться без предварительного уведомления.
См.также
Создание модуля Python
Если вы не знакомы с Python’ом, возможно, вы захотите посмотреть статью Python для начинающих, в которой объясняются основы и указаны дальнейшие учебные пособия.
При написании собственного кода на Python (называемого модулем) его необходимо разместить в каталоге, находящемся либо где-то в системном пути (обычно это путь вида /usr/lib/python3.7/site-packages/
), либо в каталоге Weblate’а, который также добавляется к путям поиска интерпретатора.
А ещё лучше превратить ваши модификации в полноценный пакет Python:
Создайте каталог для вашего пакета (мы будем использовать weblate_customization).
В нём создайте файл
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"], )
Создайте каталог для модуля 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",)
# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)