Дополнительные модули Weblate

Для вашей установки доступно несколько дополнительных модулей.

Экспортер Git

Предоставляет доступ на чтение к нижележащему репозиторию Git через HTTP(S).

Установка

  1. Добавьте weblate.gitexport в установленные приложения в файле settings.py:

    INSTALLED_APPS += ("weblate.gitexport",)
    
  2. Экспортируйте существующие репозитории, выполнив перено своей базы данных после установки:

    weblate migrate
    

Подсказка

Git exporter is turned on in our official Docker image. To turn it of, use:

WEBLATE_REMOVE_APPS=weblate.gitexport

Использование

The module automatically hooks into Weblate and sets the exported repository URL in the Настройки компонента. The repositories are accessible under the /git/ part of the Weblate URL, for example https://example.org/git/weblate/main/.

Репозитории для проектов, доступных публично, могут быть клонированы без авторизации:

git clone 'https://example.org/git/weblate/main/'

Access to browse the repositories with restricted access (with Private access control or when REQUIRE_LOGIN is enabled) requires an API token which can be obtained in your user profile:

git clone 'https://user:KEY@example.org/git/weblate/main/'

Подсказка

По умолчанию у членов группы Пользователи и анонимных пользователей есть доступ к репозиториям публичных проектов через роли Доступ к репозиторию и Опытный пользователь.

Выставление счетов

Этот модуль используется на Облачном хостинге Weblate, для задания тарифных планов, а также отслеживания платежей и лимитов.

Установка

Добавьте weblate.billing в установленные приложения в файле settings.py:

INSTALLED_APPS += ("weblate.billing",)
  1. Запустите миграцию базы данных для необязательной установки для модуля дополнительных структур базы данных:

weblate migrate

Создание и назначение тарифного плана

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.

Использование

After installation you can control billing in the admin interface. Users with billing enabled will get new Billing tab in their Профиль пользователя.

Также модуль тарифных планов даёт возможность администраторам проектов создавать новые проекты и компоненты без прав суперпользователя (смотреть раздел Добавление проектов и компонентов перевода). Это становится возможным, если удовлетворены следующие условия:

  • Тариф не исчерпал заданные лимиты (любое избыточное использование ресурсов влечёт блокировку создания проектов/компонентов) и оплачен (если он не бесплатный)

  • Пользователь является администратором существующего тарифицируемого проекта или владельцем тарифного плана (последнее необходимо пользователям только подписавшимся на тариф для того, чтобы они могли загрузить новый проект).

При создании проекта пользователь может выбрать, к какому тарифу проект должен относиться, если у пользователя их несколько.

Аватары

Аватары загружаются и кэшируются на стороне сервера, чтобы уменьшить утечку информации на сайты, обслуживающие их по умолчанию. Встроенную поддержку получения аватаров из настроенных для этого адресов электронной почты можно отключить с помощью параметра ENABLE_AVATARS.

В настоящее время Weblate поддерживает:

Подписание коммитов Git с помощью GnuPG

Все коммиты могут быть подписаны с помощью ключа GnuPG вашего экземпляра Weblate.

  • 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/):

    ../_images/about-gpg.webp
  • 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.

См. также

WEBLATE_GPG_IDENTITY

Ограничение частоты запросов

Изменено в версии 4.6: The rate limiting no longer applies to signed in superusers.

Некоторые операции Weblate ограничены по частоте. Допустимо не более RATELIMIT_ATTEMPTS попыток за период RATELIMIT_WINDOW секунд. Если это количество превышено, то пользователь блокируется на RATELIMIT_LOCKOUT секунд. Существуют также параметры, задающие ограничения, специфические для конкретных действий, например RATELIMIT_CONTACT_ATTEMPTS или RATELIMIT_TRANSLATE_ATTEMPTS. Следующая таблица является исчерпывающим списком таких параметров.

Следующие операции подвержены ограничению частоты запросов:

Имя

Область

Допустимо попыток

Временное окно

Период блокировки

Регистрация

REGISTRATION

5

300

600

Отправка сообщения администраторам

MESSAGE

2

300

600

Password authentication on sign-in

LOGIN

5

300

600

Двухфакторная аутентификация

SECOND_FACTOR

5

300

600

Поиск по всему сайту

SEARCH

6

60

60

Перевод

TRANSLATE

30

60

600

Добавление в словарь

GLOSSARY

30

60

600

Начало перевода на новый язык

LANGUAGE

2

300

600

Создание нового проекта

PROJECT

5

600

600

The rate limiting is based on sessions when user is signed in and on IP address if not.

Если у пользователя не получается войти AUTH_LOCK_ATTEMPTS раз, то авторизация по паролю полностью отключается до тех пор, пока пользователь не сбросит свой пароль.

Настройки можно также применить в Docker-контейнере, добавив префикс WEBLATE_ к имени настройки, например RATELIMIT_ATTEMPTS становится WEBLATE_RATELIMIT_ATTEMPTS.

Для API есть отдельные настройки ограничения количества запросов, смотреть раздел Ограничение частоты запросов API.