Дополнительные модули Weblate¶
Для вашей установки доступно несколько дополнительных модулей.
Экспортер Git¶
Предоставляет доступ на чтение к нижележащему репозиторию Git через HTTP(S).
Установка¶
Добавьте
weblate.gitexport
в установленные приложения в файлеsettings.py
:INSTALLED_APPS += ("weblate.gitexport",)
Экспортируйте существующие репозитории, выполнив перено своей базы данных после установки:
weblate migrate
Подсказка
Git exporter is turned on in our official Docker image. To turn it of, use:
WEBLATE_REMOVE_APPS=weblate.gitexport
Использование¶
Этот модуль автоматически вставляет свои обработчики в Weblate и устанавливает URL репозитория в настройках компонента. Репозитории будут располагаться под «каталогом» URL Weblate /git/
, например https://example.org/git/weblate/main/
.
Репозитории для проектов, доступных публично, могут быть клонированы без авторизации:
git clone 'https://example.org/git/weblate/main/'
Доступ к просмотру репозитория с ограниченным доступом (с Частным access control или когда REQUIRE_LOGIN включено) требуют API-токен, который можно получить в настройках своего профиля:
git clone 'https://user:KEY@example.org/git/weblate/main/'
Подсказка
По умолчанию у членов группы Пользователи и анонимных пользователей есть доступ к репозиториям публичных проектов через роли Доступ к репозиторию и Опытный пользователь.
Выставление счетов¶
Этот модуль используется на Облачном хостинге Weblate, для задания тарифных планов, а также отслеживания платежей и лимитов.
Установка¶
Добавьте weblate.billing
в установленные приложения в файле settings.py
:
INSTALLED_APPS += ("weblate.billing",)
Запустите миграцию базы данных для необязательной установки для модуля дополнительных структур базы данных:
weblate migrate
Billing plan creation and assignment¶
You first need to create a billing plan to activate billing. Navigate to the Administration section (represented by the wrench icon) and open the Tools screen. From there, proceed to the Django admin interface.
In the Django admin interface, locate the BILLING section and add a billing plan. For instance, you can add a Free plan with no cost.
If you wish to assign a billing plan to an existing project, this can also be done within the Django admin interface using the Customer billings option.
Lastly, the Django admin interface provides an Invoice option for logging your customer payments.
Использование¶
После установки вы сможете в интерфейсе администратора управлять тарификацией. У пользователей с включенной функцией тарификации в их профиле появится новая вкладка Тарифный план.
Также модуль тарифных планов даёт возможность администраторам проектов создавать новые проекты и компоненты без прав суперпользователя (смотреть раздел Добавление проектов и компонентов перевода). Это становится возможным, если удовлетворены следующие условия:
Тариф не исчерпал заданные лимиты (любое избыточное использование ресурсов влечёт блокировку создания проектов/компонентов) и оплачен (если он не бесплатный)
Пользователь является администратором существующего тарифицируемого проекта или владельцем тарифного плана (последнее необходимо пользователям только подписавшимся на тариф для того, чтобы они могли загрузить новый проект).
При создании проекта пользователь может выбрать, к какому тарифу проект должен относиться, если у пользователя их несколько.
Правовые вопросы¶
Этот модуль используется на Облачном хостинге Weblate для вывода необходимых юридических документов. Он поставляется в комплекте с набором незаполненных документов. Предполагается, что вы самостоятельно заполните следующие шаблоны:
legal/documents/tos.html
Документ условий обслуживания
legal/documents/privacy.html
Документ политики конфиденциальности
legal/documents/summary.html
Краткий обзор условий обслуживания и политики конфиденциальности
При изменении документов с условиями обслуживания измените LEGAL_TOS_DATE
так, чтобы пользователи были вынуждены согласиться с обновлёнными документами.
Примечание
Правовые документы облачного хостинга Weblate доступны в git-репозитории: <https://github.com/WeblateOrg/wllegal/tree/main/wllegal/templates/legal/documents>.
Скорей всего, вы не сможете просто «взять и использовать» их, так как они вам не подойдут. Однако, вы можете скорректировать их под свои нужды или они могут послужить отправной точкой при написании собственных документов.
Установка¶
1. Add weblate.legal
to installed apps in
settings.py
:
INSTALLED_APPS += ("weblate.legal",)
# Optional:
# Social auth pipeline to confirm TOS upon registration/subsequent sign in
SOCIAL_AUTH_PIPELINE += ("weblate.legal.pipeline.tos_confirm",)
# Middleware to enforce TOS confirmation of signed in users
MIDDLEWARE += [
"weblate.legal.middleware.RequireTOSMiddleware",
]
Запустите миграцию базы данных для необязательной установки для модуля дополнительных структур базы данных:
weblate migrate
Отредактируйте юридические документы в каталоге
weblate/legal/templates/legal/
в соответствии с вашими условиями.
Использование¶
После установки и редактирования юридические документы будут отображаться в пользовательском интерфейсе Weblate.
Аватары¶
Аватары загружаются и кэшируются на стороне сервера, чтобы уменьшить утечку информации на сайты, обслуживающие их по умолчанию. Встроенную поддержку получения аватаров из настроенных для этого адресов электронной почты можно отключить с помощью параметра ENABLE_AVATARS
.
В настоящее время Weblate поддерживает:
См. также
Защита от спама¶
Вы можете защититься от спама от пользователей, воспользовавшись сервисом Akismet.
Установите Python-модуль akismet (он уже включён в официальный образ Docker).
Получите API-ключ Akismet.
Сохранить как
AKISMET_API_KEY
илиWEBLATE_AKISMET_API_KEY
в Docker.
Следующее содержимое отправляется на проверку в Akismet:
Предложения от неавторизованных пользователей
Описания проектов и компонентов и ссылки
Примечание
Защита (среди всего прочего) зависит от IP-адреса клиента, для правильной ее настройки, пожалуйста, смотрите раздел Работа за обратным прокси.
Подписание коммитов Git с помощью GnuPG¶
Все коммиты могут быть подписаны с помощью ключа GnuPG вашего экземпляра Weblate.
1. Turn on WEBLATE_GPG_IDENTITY
. (Weblate will generate a GnuPG
key when needed and will use it to sign all translation commits.)
Эта функция требует установки GnuPG 2.1 или новее.
Этот ключ будет хранится по пути, указанному в DATA_DIR
, а открытый ключ будет отображаться на странице «О Weblate» (/about/):
2. Alternatively you can also import existing keys into Weblate, just set
HOME=$DATA_DIR/home
when invoking gpg.
Подсказка
Ключевой материал кэшируется Weblate на длительный период. Если вы позволяете Weblate создать ключ с WEBLATE_GPG_IDENTITY
, а затем импортировать ключ с тем же идентификатором, чтобы использовать существующий ключ, рекомендуется очистить кэш Redis, чтобы увидеть эффект такого изменения.
Примечание
При совместном использовании DATA_DIR
между несколькими серверами, пожалуйста, следуйте инструкциям на https://wiki.gnupg.org/NFS для обеспечения надёжной работы подписи GnuPG.
См. также
Ограничение частоты запросов¶
Изменено в версии 4.6: Ограничение скорости больше не применяется к суперпользователям.
Некоторые операции Weblate ограничены по частоте. Допустимо не более RATELIMIT_ATTEMPTS
попыток за период RATELIMIT_WINDOW
секунд. Если это количество превышено, то пользователь блокируется на RATELIMIT_LOCKOUT
секунд. Существуют также параметры, задающие ограничения, специфические для конкретных действий, например RATELIMIT_CONTACT_ATTEMPTS
или RATELIMIT_TRANSLATE_ATTEMPTS
. Следующая таблица является исчерпывающим списком таких параметров.
Следующие операции подвержены ограничению частоты запросов:
Имя |
Область |
Допустимо попыток |
Временное окно |
Период блокировки |
---|---|---|---|---|
Регистрация |
|
5 |
300 |
600 |
Отправка сообщения администраторам |
|
2 |
300 |
600 |
Авторизация по паролю при входе |
|
5 |
300 |
600 |
Поиск по всему сайту |
|
6 |
60 |
60 |
Перевод |
|
30 |
60 |
600 |
Добавление в словарь |
|
30 |
60 |
600 |
Начало перевода на новый язык |
|
2 |
300 |
600 |
Создание нового проекта |
|
5 |
600 |
600 |
Если у пользователя не получается войти AUTH_LOCK_ATTEMPTS
раз, то авторизация по паролю полностью отключается до тех пор, пока пользователь не сбросит свой пароль.
Настройки можно также применить в Docker-контейнере, добавив префикс WEBLATE_
к имени настройки, например RATELIMIT_ATTEMPTS
становится WEBLATE_RATELIMIT_ATTEMPTS
.
Для API есть отдельные настройки ограничения количества запросов, смотреть раздел Ограничение частоты запросов API.
Интеграция Fedora Messaging¶
Fedora Messaging - это основанный на AMQP издатель всех изменений, происходящих в Weblate. С его помощью вы можете подключать дополнительные сервисы к изменениям, происходящим в Weblate.
Интеграция Fedora Messaging доступна в виде отдельного Python-модуля weblate-fedora-messaging
. Пожалуйста, просмотрите <https://github.com/WeblateOrg/fedora_messaging/> для инструкций по настройке.