Налаштування¶
Усі параметри зберігаються у файлі settings.py (звична картина для Django).
Примітка
Після внесення змін до будь-яких з цих параметрів вам слід перезапустити Weblate — обидва процеси, WSGI і Celery.
У випадку, якщо Weblate запущено як mod_wsgi, вам слід перезапустити Apache для перезавантаження налаштувань.
Дивись також
Також, будь ласка, перевірте Django’s documentation для параметрів налаштування самого Django.
ADMINS_CONTACT¶
Визначає, куди форма зв’язку надсилатиме повідомлення електронної пошти. Якщо не вказано, буде використано адреси електронної пошти з ADMINS.
Налаштуйте це як список адрес електронної пошти:
ADMINS_CONTACT = ["admin@example.com", "support@example.com"]
Дивись також
ALLOWED_ASSET_DOMAINS¶
Added in version 5.14.
Налаштовує, які домени дозволені для отримання ресурсів у Weblate.
Це підвищує безпеку, запобігаючи завантаженню ресурсів з ненадійних джерел. Ресурси завантажуються один раз сервером Weblate і зберігаються локально, а не надаються користувачам безпосередньо з зовнішніх доменів.
Список дозволених адрес застосовується до початкового URL-адреси та до кожного адреса перенаправлення HTTP перед тим, як Weblate перейде за ним. Перенаправлення на хости, що не входять до цього списку дозволених адрес, відхиляються.
Він очікує список імен хостів/доменів. Ви можете використовувати повністю кваліфіковані імена (наприклад, www.example.com) або додавати крапку як символ-замінник, щоб відповідати всім піддоменам (наприклад, .example.com відповідатиме cdn.example.com або static.example.com).
За замовчуванням встановлено значення ["*"], що дозволяє використовувати будь-які домени.
Приклад
ALLOWED_ASSET_DOMAINS = [
# Allows only cdn.anotherdomain.org
"cdn.anotherdomain.org",
# Allows example.com and all its subdomains
".example.com",
]
Наразі це використовується в таких місцях:
Завантаження скріншотів, див. Скріншоти та візуальний контекст
Віддалене завантаження HTML-файлів для доповнення CDN локалізації JavaScript
ALLOWED_MACHINERY_DOMAINS¶
Configures which custom translation service domains are explicitly allowed in project-level translation service configuration.
This setting applies only to translation services and does not affect
ALLOWED_ASSET_DOMAINS.
Він очікує на список імен хостів/доменів. Ви можете використовувати повні імена або додавати перед ними крапку як символ-замінник, щоб охопити всі піддомени.
За замовчуванням встановлено значення [].
The allowlist affects project-managed translation services in two ways: it permits the configured endpoint during outbound validation, and it marks matching hosts as trusted when deciding whether remote provider error details or response bodies can be shown to the user. Matching hosts are also exempt from private-target restrictions. For direct connections, Weblate does not resolve, pin, or verify the peer address of matching hosts. Only add hosts or domains whose network destinations are trusted. When a configured HTTP-проксі is used, the proxy is trusted to resolve the destination hostname.
ALLOWED_ASSET_SIZE¶
Added in version 5.14.
Configures size limit in bytes for fetching or uploading assets into Weblate. Defaults to 10 MB.
ASSET_PRIVATE_ALLOWLIST¶
Added in version 2025.5.
Defines hostnames or domains exempt from ASSET_RESTRICT_PRIVATE
for remote asset downloads that enforce private-target checks. Entries follow
Django host matching semantics, so values such as assets.internal.example
or .internal.example can be used.
This does not replace ALLOWED_ASSET_DOMAINS; remote assets must
still match the asset domain allowlist.
Типова конфігурація:
ASSET_PRIVATE_ALLOWLIST = []
Дивись також
ASSET_RESTRICT_PRIVATE¶
Added in version 2025.5.
Reject remote asset URLs pointing to internal or non-public addresses unless
the target host is included in ASSET_PRIVATE_ALLOWLIST. On by
default.
When enabled, hostnames that cannot be resolved during validation are rejected
unless they are explicitly included in ASSET_PRIVATE_ALLOWLIST.
This currently applies to screenshot URL uploads and remote HTML downloads for
the CDN локалізації JavaScript add-on.
ALTCHA_COST¶
Added in version 2025.5.
Argon2id time cost for the ALTCHA proof-of-work challenge. Defaults to 3.
Replaces ALTCHA_MAX_NUMBER, which applied to the removed ALTCHA widget v2.
ALTCHA_MEMORY_COST¶
Added in version 2025.5.
Argon2id memory cost in KiB. Defaults to 65536.
ALTCHA_PARALLELISM¶
Added in version 2025.5.
Argon2id parallelism factor. Defaults to 1.
Дивись також
ANONYMOUS_USER_NAME¶
Імена користувачів, які не увійшли до системи.
Дивись також
AUDITLOG_EXPIRY¶
Максимальна кількість днів, коли Weblate зберігатиме журнали аудиту, що містять інформацію про активність облікового запису.
Типовим є значення у 180 днів.
Дивись також
AUTH_LOCK_ATTEMPTS¶
Максимальна кількість спроб невдалого розпізнавання, перш ніж буде застосовано обмеження швидкості.
У поточній версії застосовується у таких місцях:
Вхід. Вилучає пароль до облікового запису, забороняючи користувачеві входити до системи без запиту щодо введення нового пароля.
Second-factor sign in. Deletes the account password after this many rejected second-factor submissions since the last successful second-factor sign in. This also invalidates pending password sign-ins. Other authentication methods and API tokens remain usable.
Скидання пароля. Забороняє надсилання нових повідомлень електронної пошти, не набридаючи користувачам надто великою кількістю повідомлень щодо скидання пароля.
Типове значення — 10.
Дивись також
AUTO_UPDATE¶
Оновлює усі сховища щоденно.
Every hour, Weblate queues updates for repositories whose component ID modulo 24
matches the current UTC hour. This distributes updates throughout the day. For
example, component ID 25 is selected during the hour from 01:00 to 01:59 UTC.
Linked components use the schedule of the component that owns their shared
repository.
The assigned hour determines when updates are queued, not when they finish. Execution can be delayed by queued tasks or repository operations. Restarting Celery does not change the assigned hour. This setting does not provide a configurable update time window.
Підказка
Корисно, якщо ви не використовуєте Обробники сповіщень для автоматичного оновлення сховищ Weblate.
Примітка
Окрім вибору рядка, передбачено значення «увімкнено» і «вимкнено» для зворотної сумісності.
Можливі варіанти:
"none"Без щоденних оновлень.
"remote"такожFalseFetch remote changes without merging them into the working copy. This is the default;
Falsedoes not disable daily updates."full"такожTrueFetch remote changes and merge them into the working copy.
Примітка
Automatic updates require that Фонові завдання з використанням Celery is working. Restart Celery after changing this setting for the new value to take effect.
AVATAR_URL_PREFIX¶
Префікс для побудови адрес аватарів: ${AVATAR_URL_PREFIX}/avatar/${MAIL_HASH}?${PARAMS}. Перевірено працездатність таких служб:
- Gravatar (типовий), як на https://gravatar.com/
AVATAR_URL_PREFIX = 'https://www.gravatar.com/'- Libravatar, як на https://www.libravatar.org/
AVATAR_URL_PREFIX = 'https://www.libravatar.org/'
Дивись також
AVATAR_URL_TEMPLATE¶
Added in version 2026.10.
Template to generate avatar URLs. Defaults to "{AVATAR_URL_PREFIX}avatar/{mail_hash}?{querystring}".
It can contain {AVATAR_URL_PREFIX}, {mail_hash}, {querystring}, {username}, and {size}.
For example, to fetch avatars by username instead of e-mail hash (as needed by Codeberg’s Forgejo-backed avatar service):
AVATAR_URL_TEMPLATE = "{AVATAR_URL_PREFIX}avatar/{username}/{size}"
AUTH_TOKEN_VALID¶
How long the authentication token and temporary password from password reset e-mails is valid for. Set in number of seconds, defaulting to 172800 (2 days). E-mail validation codes are checked against this lifetime when used, even if scheduled cleanup has not yet removed them. This does not set a deadline for other authentication pipeline steps.
AUTH_PASSWORD_DAYS¶
Кількість днів, протягом яких Weblate відмовлятиметься повторно використовувати раніше використаний пароль для користувача.
Перевірку засновано на журналі ревізії, AUDITLOG_EXPIRY має бути принаймні таким самим великим, як це значення.
Примітка
Зміни пароля, виконані до Weblate 2.15 не братимуться до уваги у цьому правилі.
Типовим є значення у 180 днів.
AUTOFIX_LIST¶
Список автоматичних виправлено, які слід застосувати при збереженні рядка.
Примітка
Надайте повний шлях до класу Python, який реалізує інтерфейс автоматичного виправлення.
Доступні виправлення описано на сторінці Автоматичні виправлення.
Ви можете вибрати, яким з них скористатися:
AUTOFIX_LIST = (
"weblate.trans.autofixes.whitespace.SameBookendingWhitespace",
"weblate.trans.autofixes.chars.ReplaceTrailingDotsWithEllipsis",
)
BACKGROUND_TASKS¶
Added in version 4.5.2.
Визначає частоту, із якою запускатимуться тривалі завдання для складника.
У поточній версії керує такими елементами:
додатком Автоматичний переклад
повторною обробкою Перевірки і виправлення
Можливі варіанти значень:
monthly(щомісяця, типове значення)weeklydailynever
Примітка
Не рекомендуємо збільшувати частоту, якщо у Weblate тисячі складників.
BASIC_LANGUAGES¶
Added in version 4.4.
Список мов, які буде запропоновано користувачам при започаткуванні нового перекладу. Якщо не вказано, буде використано вбудований список, до якого включено найпоширеніші мови, але без діалектів певних країн.
Це заборонить додавати небажані мови лише непривілейованим користувачам. Адміністраторам проєкту все одно буде надано повний набір мов, які визначено у Weblate.
Примітка
Це не визначає нових мов для Weblate, лише фільтрує наявні у базі даних.
Приклад:
BASIC_LANGUAGES = {"cs", "it", "ja", "en"}
Дивись також
BORG_EXTRA_ARGS¶
Added in version 4.9.
Ви можете передати додаткові аргументи borg create, якщо увімкнено вбудоване резервне копіювання.
Приклад:
BORG_EXTRA_ARGS = ["--exclude", "vcs/"]
Дивись також
CACHE_DIR¶
Added in version 4.16.
Каталог, у якому Weblate зберігає файли кешу. Типовим є підкаталог cache у DATA_DIR.
Змініть це на локальну або тимчасову файлову систему, якщо DATA_DIR є каталогом мережевої файлової системи.
Weblate stores generated helper files here and executes some of them, so
CACHE_DIR has to be writable and mounted on a filesystem that allows
execution. Avoid using noexec mount options for this directory.
Контейнер Docker використовує для цього окремий том, див. Томи контейнера Docker.
Зазвичай, існують такі підкаталоги:
sshGenerated helper files used for VCS access.
fontsfont-config кеш для Керування шрифтами.
avatarКешовані аватари користувачів, див. Аватари.
staticТипове місце для статичних файлів Django, визначається на основі
STATIC_ROOT. Див. Обслуговування статичних файлів.tesseractДані, навчені OCR, для Скріншоти та візуальний контекст.
CSP_SCRIPT_SRC, CSP_IMG_SRC, CSP_CONNECT_SRC, CSP_STYLE_SRC, CSP_FONT_SRC, CSP_FORM_SRC¶
Налаштуйте заголовок Content-Security-Policy для Weblate. Заголовок генерується автоматично на основі ввімкнених інтеграцій зі сторонніми сервісами (Matomo, Google Analytics, Sentry тощо).
Усі ці списки за замовчуванням є порожніми.
Приклад:
# Enable Cloudflare Javascript optimizations
CSP_SCRIPT_SRC = ["ajax.cloudflare.com"]
CHECK_LIST¶
Список перевірок якості, які слід виконати над перекладом.
Примітка
Надайте повний шлях до класу Python, який реалізує інтерфейс перевірок.
Скоригувати список перевірок для включення потрібних вам.
Усі вбудовані Перевірки якості типово увімкнено. Ви можете змінити ці параметри. Типово, записи у Зразок налаштувань закоментовано, тому використовуються типові значення. Нові перевірки додаються із кожною новою версією Weblate.
Ви можете вимкнути усі перевірки:
CHECK_LIST = ()
Ви можете увімкнули лише декілька:
CHECK_LIST = (
"weblate.checks.chars.BeginNewlineCheck",
"weblate.checks.chars.EndNewlineCheck",
"weblate.checks.chars.MaxLengthCheck",
)
Примітка
Зміна значення цього параметра стосується лише змінених наново перекладів — наявні перевірки зберігатимуться у базі даних. Щоб зміни було застосовано до вже збережених перекладів, віддайте команду updatechecks.
COMMIT_PENDING_HOURS¶
Кількість годин, протягом яких слід надіслати до сховища зміни з черги разом із фоновим завданням.
COMPONENT_ZIP_UPLOAD_MAX_SIZE¶
Added in version 5.17.1.
Встановлює максимальний розмір (у байтах) для завантажуваних ZIP-файлів компонентів. За замовчуванням — 50 МБ.
In Docker, configure this using the WEBLATE_COMPONENT_ZIP_UPLOAD_MAX_SIZE
environment variable.
Дивись також
CONTACT_FORM¶
Added in version 4.6.
Налаштовує спосіб надсилання повідомлення електронної пошти з форми зв’язку. Виберіть налаштування, які відповідають налаштуванням вашого поштового сервера.
"reply-to"The sender is used as Reply-To, this is the default behaviour.
"from"The sender is used as From. Your mail server needs to allow sending such e-mails.
"disabled"Повністю вимикає контактну форму.
Added in version 5.15.
Дивись також
DATA_DIR¶
Тека, у якій Weblate зберігає дані. Тека містить посилання на сховища системи керування версіями, повнотекстовий покажчик та різноманітні файли налаштувань для зовнішніх інструментів.
Зазвичай, існують такі підкаталоги:
homeДомашній каталог, який використовується для виклику скриптів.
sshКлючі і налаштування SSH.
mediaТипове розташування мультимедійних файлів Django, визначається на основі
MEDIA_ROOT. Містить вивантажені знімки вікон, див. Скріншоти та візуальний контекст.vcsСховища систем керування версіями для перекладів.
backupsДані щоденної резервної копії. Докладніше про це у розділі Дампи даних для резервних копій.
fonts:Вивантажені користувачем шрифти, див. Керування шрифтами.
cacheРізноманітні кеші, можна розташувати деінде за допомогою
CACHE_DIR.Контейнер Docker використовує для цього окремий том, див. Томи контейнера Docker.
Примітка
Цей каталог має бути доступним для запису Weblate. Запуск як WSGI означає, що користувач www-data повинен мати доступ для запису до нього.
Найпростішим способом досягти результату є надання користувачеві прав власника каталогу:
sudo chown www-data:www-data -R $DATA_DIR
Типове значення — /home/weblate/data, але варто налаштувати все відповідним чином.
DATABASE_BACKUP¶
Чи мають резервні копії зберігатися у форматі звичайного тексту, стисненими чи пропущеними. Коректними значеннями є такі:
"plain""compressed""none"
Дивись також
DEFAULT_ACCESS_CONTROL¶
Типовий параметр керування доступом для нових проєктів:
0Відкритий
1Захищений
100Приватний
200Нетиповий
Скористайтеся варіантом Нетиповий, якщо ви керуєте ACL вручну, тобто не покладаєтеся на внутрішні механізми керування Weblate.
DEFAULT_AUTO_WATCH¶
Added in version 4.5.
Налаштовує, чи має бути увімкнено Автоматичне спостереження за проєктами із внеском для нових користувачів. Типове значення — True.
Дивись також
DEFAULT_RESTRICTED_COMPONENT¶
Added in version 4.1.
Типове значення для обмеження на доступ до складника.
Дивись також
DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE¶
Типові повідомлення про внесок для різних дій. Докладніше про це у розділі Налаштовування складників.
The built-in defaults follow Conventional Commits and include Weblate links where available. Changing these settings affects newly created defaults; existing message templates can be reset in the settings forms with Restore site default. For inherited values, restoring the site default also disables inheritance for that message.
DEFAULT_ADDONS¶
Типові додатки, які слід встановлювати для всіх створених складників.
Примітка
Цей параметр стосується лише новостворених складників.
Приклад:
DEFAULT_ADDONS = {
# Add-on with no parameters
"weblate.flags.target_edit": {},
# Add-on with parameters
"weblate.autotranslate.autotranslate": {
"mode": "suggest",
"filter_type": "todo",
"auto_source": "mt",
"component": "",
"engines": ["weblate-translation-memory"],
"threshold": "80",
},
}
Дивись також
DEFAULT_COMMITER_EMAIL¶
Адреса електронної пошти автора внеску. Типове значення — noreply@weblate.org.
This identifies Weblate as the committer, separately from the translator recorded
as the author. To make translators“ author e-mail addresses private by default,
set PRIVATE_COMMIT_EMAIL_OPT_IN to False.
Дивись також
DEFAULT_COMMITER_NAME¶
Ім’я автора внеску. Типове значення — Weblate.
This identifies Weblate as the committer, separately from the translator recorded
as the author. To make translators“ author names private by default, set
PRIVATE_COMMIT_NAME_OPT_IN to False.
Дивись також
DEFAULT_LANGUAGE¶
Added in version 4.3.2.
Початкова мова для усіх нових складників.
Типовим значенням є en. Відповідний об’єкт мови має існувати у базі даних.
Дивись також
DEFAULT_MERGE_STYLE¶
Стиль злиття для усіх нових складників.
rebase — типовий
merge
Дивись також
DEFAULT_NOTIFICATIONS¶
Added in version 2026.10.1.
Default notification settings for every newly created user.
A list of 3-tuples consisting of notification scope, notification frequency and notification handler.
Scopes:
0All
10Watched
20Administered
Frequencies:
0No notification
1Instant notification
2Daily digest
3Weekly digest
4Monthly digest
Handlers:
ApprovedStringNotificatonString was approved
ChangedStringNotificatonString was changed
ComponentTranslatedNotificatonComponent was translated
LanguageTranslatedNotificatonLanguage was translated
LastAuthorCommentNotificatonString you contributed to received a comment
LicenseNotificationLicense was changed
LockNotificationComponent was locked or unlocked
MentionCommentNotificatonYou were mentioned in a comment
MergeFailureNotificationRepository operation failed
NewAlertNotificatonNew alert emerged in a component
NewAnnouncementNotificatonAnnouncement was published
NewCommentNotificatonComment was added
NewComponentNotificatonNew translation component was created
NewContributorNotificatonContributor made their first translation
NewStringNotificatonString is available for translation
NewSuggestionNotificatonSuggestion was added
NewTranslationNotificatonNew language was added or requested
ParseErrorNotificationParse error occurred
PendingSuggestionsNotificationPending suggestions exist
RepositoryNotificationOperation was performed in the repository
ToDoStringsNotificationUnfinished strings exist
TranslatedStringNotificatonString was edited by user
TranslationActivitySummaryNotificationTranslation activity summary
Примітка
This setting affects only newly created users.
Приклад:
DEFAULT_NOTIFICATIONS = [
(0, 1, "MentionCommentNotificaton"),
(10, 1, "LastAuthorCommentNotificaton"),
]
Дивись також
DEFAULT_WORKSPACE_TM¶
Added in version 2026.11.2.
Configures the default value of Використати пам’ять перекладу робочого простору and Зробити внесок до пам’яті перекладу робочого простору.
DEFAULT_TRANSLATION_REVIEW¶
Added in version 5.16.
Налаштовує значення за замовчуванням для Увімкнути рецензії, яке за замовчуванням вимкнено.
DEFAULT_SOURCE_REVIEW¶
Added in version 5.16.
Налаштовує значення за замовчуванням для Увімкнути рецензування початкових даних, яке за замовчуванням вимкнено.
DEFAULT_AUTOCLEAN_TM¶
Added in version 5.13.
Налаштовує значення за замовчуванням Автоматичне очищення пам’яті перекладів.
DEFAULT_TRANSLATION_PROPAGATION¶
Типовий параметр для надсилання перекладу, типове значення — True.
Дивись також
DEFAULT_PULL_MESSAGE¶
Налаштовує типовий заголовок та повідомлення для запитів щодо об’єднання.
The built-in default follows Conventional Commits and includes Weblate links and translation status.
ENABLE_AVATARS¶
Визначає, чи слід вмикати засновані на Gravatar аватари для користувачів. Типово увімкнено.
Зображення аватарів отримуються і кешуються на сервері — це знижує ризик витоку приватних даних і пришвидшує обробку даних для користувача.
Дивись також
ENABLE_HOOKS¶
Чи слід вмикати доступу до анонімних віддалених скриптів обробки.
Дивись також
ENABLE_HTTPS¶
Змінено в версії 5.7: Для Weblate потрібен https для підтримки WebAuthn.
Визначає, надсилати посилання Weblate як HTTPS або як HTTP. Цей параметр впливає на надіслані повідомлення електронної пошти і створення абсолютних адрес.
У типових налаштуваннях цей параметр також використовується для декількох параметрів Django, які пов’язано із HTTPS — вмикає безпечні куки, перемикає HSTS або вмикає переспрямовування на адресу HTTPS.
У певних випадках переспрямовування HTTPS може викликати проблеми — ви можете зіткнутися із проблемами циклічного переспрямовування, якщо ви використовуєте реверсивний проксі-сервер, який виконує обривання SSL і не передає належним чином заголовки протоколів до Django. Будь ласка, скоригуйте налаштування вашого реверсивного проксі-сервера так, щоб він надсилав заголовки X-Forwarded-Proto або Forwarded, або налаштуйте SECURE_PROXY_SSL_HEADER, щоб надати Django змогу правильно визначати стан SSL.
Якщо це вимкнено, Weblate не зможе запуститися з помилкою otp_webauthn.E031. Ви можете заглушити цю помилку, додавши її до SILENCED_SYSTEM_CHECKS, але все одно WebAuthn не працюватиме для сайтів без HTTPS.
ENABLE_SHARING¶
Увімкнути/вимкнути меню Community, щоб користувачі могли ділитися прогресом перекладу в соціальних мережах.
Дивись також
EXTRA_HTML_HEAD¶
Added in version 4.15.
Вставити додаткову розмітку у заголовок HTML. Можна скористатися, наприклад, для перевірки власності сайта:
EXTRA_HTML_HEAD = '<link href="https://fosstodon.org/@weblate" rel="me">'
Попередження
Обробка рядка не виконуватиметься, його буде просто вставлено до заголовка HTML.
GET_HELP_URL¶
Added in version 4.5.2.
Адреса, за якою можна отримати підтримку для вашого екземпляра Weblate.
GITEA_CREDENTIALS¶
Added in version 4.12.
Список реєстраційних даних для серверів Gitea.
GITEA_CREDENTIALS = {
"try.gitea.io": {
"username": "weblate",
"token": "your-api-token",
},
}
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Компонування є таким самим майже для усіх інтеграцій із системами керування версіями. Його описано у розділі Налаштування облікових даних системи керування версіями.
GITLAB_CREDENTIALS¶
Added in version 4.3.
Список реєстраційних даних для серверів GitLab.
GITLAB_CREDENTIALS = {
"gitlab.com": {
"username": "weblate",
"token": "your-api-token",
},
}
Примітка
Для використання API персональному токену доступу потрібна область видимості api.
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Компонування є таким самим майже для усіх інтеграцій із системами керування версіями. Його описано у розділі Налаштування облікових даних системи керування версіями.
GITHUB_CREDENTIALS¶
Added in version 4.3.
Список реєстраційних даних для серверів GitHub.
GITHUB_CREDENTIALS = {
"api.github.com": {
"username": "weblate",
"token": "your-api-token",
},
}
Примітка
Можна використовувати як детальні персональні токени доступу, так і класичні персональні токени доступу. Детальні токени обмежені однією організацією, тому вони не працюватимуть, якщо ви хочете, щоб Weblate створив репозиторій за межами організації (зазвичай до простору імен користувача).
Для клонування, надсилання та створення пул-реквестів потрібен доступ на читання та запис до Contents та Pull requests.
Administration також може знадобитися для розгалуження сховища, якщо ви збираєтеся використовувати розгалуження, а оригінальне сховище не є публічним.
Підказка
Use api.github.com as an API host for https://github.com/.
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Компонування є таким самим майже для усіх інтеграцій із системами керування версіями. Його описано у розділі Налаштування облікових даних системи керування версіями.
GITHUB_LEGACY_APP_WEBHOOK_SECRET¶
Added in version 2026.8.
Webhook secret for a legacy GitHub App which delivers events to the generic
GitHub webhook URL, /hooks/github/.
App webhook deliveries to the generic URL are rejected when this setting is
empty or their X-Hub-Signature-256 does not match. Ordinary repository
webhooks are unaffected. GitHub Apps registered through Weblate use their
per-App webhook URLs and do not use this setting.
GITHUB_LEGACY_APP_WEBHOOK_SECRET = "your-webhook-secret"
Дивись також
BITBUCKETSERVER_CREDENTIALS¶
Added in version 4.16.
Список облікових даних для Bitbucket Data Center.
BITBUCKETSERVER_CREDENTIALS = {
"git.self-hosted.com": {
"username": "weblate",
"token": "http-access-token",
},
}
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Компонування є таким самим майже для усіх інтеграцій із системами керування версіями. Його описано у розділі Налаштування облікових даних системи керування версіями.
BITBUCKETCLOUD_CREDENTIALS¶
Added in version 5.8.
Список реєстраційних даних для серверів Bitbucket Cloud.
BITBUCKETCLOUD_CREDENTIALS = {
"bitbucket.org": {
"username": "your-email",
"workspace": "your-workspace-slug",
"token": "your-api-token",
},
}
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Вузол API може відрізнятися від того, яким ви користуєтеся у браузері. Наприклад, доступ до програмного інтерфейсу GitHub здійснюється за допомогою api.github.com.
Для кожного вузла доступні такі налаштування:
usernameКористувач програмного інтерфейсу.
workspaceЖетон простору користувача.
tokenТокен API з дозволом pullrequest:write.
Додаткові параметри, які не описано тут, описано у розділі Налаштування облікових даних системи керування версіями.
AZURE_DEVOPS_CREDENTIALS¶
Added in version 5.2.
Список реєстраційних даних для серверів Azure DevOps.
AZURE_DEVOPS_CREDENTIALS = {
"dev.azure.com": {
"username": "project-name",
"token": "your-api-token",
"organization": "organization-name",
},
}
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Вузол API може відрізнятися від того, яким ви користуєтеся у браузері. Наприклад, доступ до програмного інтерфейсу GitHub здійснюється за допомогою api.github.com.
Для кожного вузла доступні такі налаштування:
usernameНазва проєкту Azure DevOps. Це не назва сховища.
organizationНазва організації проєкту..
workItemIdsНеобов’язковий список ідентифікаторів робочих записів з вашої організації. Буде долучено до наданих нових запитів щодо об’єднання.
tokenЖетон для користувача API, має бути вказано обов’язково.
Додаткові параметри, які не описано тут, описано у розділі Налаштування облікових даних системи керування версіями.
GOOGLE_ANALYTICS_ID¶
Google Analytics ID, щоб увімкнути моніторинг Weblate за допомогою Google Universal Analytics.
Примітка
Інтеграція Google Analytics 4 наразі недоступна для Weblate, див. https://github.com/WeblateOrg/weblate/issues/14015.
HIDE_REPO_CREDENTIALS¶
Приховати реєстраційні дані сховища від показу у вебінтерфейсі. Якщо у адресі сховища міститься ім’я користувача і пароль, Weblate приховає їх при показі відповідних даних користувачам.
Наприклад, замість https://користувач:пароль@git.example.com/repo.git буде показано просто https://git.example.com/repo.git. Програма також намагатиметься вилучити повідомлення про помилки системи керування версіями у подібний же спосіб.
Примітка
Типово увімкнено.
VERSION_DISPLAY¶
Added in version 5.17.
Визначає, наскільки помітно Weblate відображає інформацію про свою версію.
Підтримувані значення:
showВідобразити версію в загальному інтерфейсі користувача, наприклад у нижньому колонтитулі, та надати доступ до неї за адресою
GET /api/metrics/.softПриховати версію з головного інтерфейсу, але залишити її доступною на сторінці Про програму та за адресою
GET /api/metrics/.hideПриховати версію у спільному інтерфейсі користувача та за адресою
GET /api/metrics/. Це також призведе до того, що анонімні посилання на документацію будуть вести на найновішу версію документації, а не на ту, що відповідає встановленому випуску.
Приховування версії є рекомендованою практикою безпеки в деяких компаніях, але це не заважає зловмиснику визначити версію шляхом аналізу поведінки програми.
Примітка
За замовчуванням встановлено значення show.
HIDE_VERSION¶
Added in version 4.3.1.
Застаріло починаючи з версії 5.17.
Псевдонім сумісності для VERSION_DISPLAY. Встановіть для цього параметра значення True, щоб отримати ту саму поведінку, що й при VERSION_DISPLAY = "hide".
INTERNAL_BOT_EMAIL_TEMPLATE¶
Added in version 2026.7.1.
Template used to generate e-mail addresses for internal Weblate bot accounts.
Defaults to "noreply-{scope}-{name}@weblate.org".
It can contain {scope}, {name}, {username}, {site_title}, and
{site_domain}.
Use {scope} and {name} when generating the e-mail local part. The
{username} value contains the internal scope:name username.
Existing internal bot accounts are updated when migrate is run.
Project API token accounts are not affected.
IP_BEHIND_REVERSE_PROXY¶
Вказує, чи працює Weblate за реверсивним проксі-сервером.
Якщо встановлено значення True, Weblate отримуватиме IP-адресу з заголовка, який визначено IP_PROXY_HEADER.
Попередження
The reverse proxy which connects to Weblate must overwrite the configured
header or append a verified peer address at the position selected by
IP_PROXY_OFFSET. Weblate does not verify which peer supplied the
header, so trusting a client-controlled value allows IP address spoofing.
Ensure that untrusted clients cannot reach Weblate without passing through the trusted proxy.
Примітка
Типово не увімкнено.
IP_PROXY_HEADER¶
Вказує, з якого заголовка Weblate має отримати адресу, коли увімкнено IP_BEHIND_REVERSE_PROXY.
Типове значення — HTTP_X_FORWARDED_FOR.
IP_PROXY_OFFSET¶
Змінено в версії 5.0.1: Типове значення змінено з 1 на -1.
Вказує, яку частину IP_PROXY_HEADER має бути використано як клієнтську IP-адресу.
Залежно від вашої конфігурації, цей заголовок може складатися з декількох IP-адрес (наприклад, X-Forwarded-For: client-ip, proxy-a, proxy-b), і ви можете налаштувати, яку адресу з заголовка буде використано як клієнтську IP-адресу тут.
Попередження
Setting this affects the security of your installation. Select only an address added or verified by a proxy under your control. Addresses supplied by the client are untrusted. Ensure that the selected offset matches how your proxies construct the header.
See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Forwarded-For#security_and_privacy_concerns> for more details.
Типове значення — -1.
LEGAL_DOCUMENT_CSS_CLASS¶
Added in version 2026.7.
CSS class added to the wrappers around legal document templates.
Defaults to "tos". Weblate does not attach styling to this class; custom
legal styles can use it to target document wrappers. Set this to an empty
string to render legal documents without a wrapper class.
LEGAL_DOCUMENT_CSS_CLASS = ""
Дивись також
LEGAL_TOS_DATE¶
Added in version 4.15.
Примітка
Щоб мати змогу цим скористатися, вам слід встановити Юридичний модуль.
Date of the legal documents users last agreed to. Whenever the date changes, users are required to agree with the current terms of service and, when a privacy policy link is available, the privacy policy.
from datetime import date
LEGAL_TOS_DATE = date(2022, 2, 2)
LEGAL_URL¶
Адреса, за якою екземпляр Weblate показуватиме правові документи.
Підказка
When the Юридичний модуль module is enabled, this URL takes priority over its internal terms page in document links. The default terms template links to this URL when visited directly.
Приклад:
LEGAL_URL = "https://weblate.org/terms/"
Дивись також
LICENSE_EXTRA¶
Додаткові ліцензії, які слід включити до варіантів ліцензування.
Примітка
Each license definition should be a tuple of its short name, a long name, a URL and a boolean, indicating whether it is a libre license.
Приклад:
LICENSE_EXTRA = [
(
"AGPL-3.0",
"GNU Affero General Public License v3.0",
"https://www.gnu.org/licenses/agpl-3.0-standalone.html",
True,
),
]
LICENSE_FILTER¶
Змінено в версії 4.3: Відтепер, якщо спорожнити це значення, попередження про ліцензію буде вимкнено.
Фільтрувати перелік ліцензій для показу. Це також вимкне оповіщення про ліцензію, якщо спорожнити значення.
Примітка
У цьому фільтрі використовуються скорочені назви ліцензій.
Приклад:
LICENSE_FILTER = {"AGPL-3.0", "GPL-3.0-or-later"}
Це вимкне попередження про ліцензію:
LICENSE_FILTER = set()
Дивись також
LICENSE_REQUIRED¶
Визначає, чи є обов’язковим атрибут ліцензування у записі Налаштовування складників.
Примітка
Типово вимкнено.
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH¶
Визначає, чи має бути обмежено довжину вказаного перекладу. Обмеження довжини — довжина початкового рядка × 10 символів.
Підказка
Установіть значення False, щоб уможливити довші переклади (аж до 10000 символів), незалежно від довжини початкового рядка.
Примітка
Типове значення — True.
LOCALIZE_CDN_URL і LOCALIZE_CDN_PATH¶
These settings configure the CDN add-ons, including
CDN локалізації JavaScript, CDN файлів перекладу, and
Kotlin SDK CDN.
LOCALIZE_CDN_URL defines root URL where the localization CDN is
available and LOCALIZE_CDN_PATH defines path where Weblate should
store generated files which will be served at the LOCALIZE_CDN_URL.
The files are served by your web server or CDN, not by Weblate; see
CDN локалізації for secure serving guidance.
Підказка
На базовому Weblate використано https://weblate-cdn.com/.
Дивись також
MATOMO_SITE_ID¶
Ідентифікатор сайта Matomo (раніше Piwik), яким ви хочете скористатися для стеження за Weblate.
Примітка
У цьому варіанті інтеграції не передбачено підтримки керування мітками Matomo.
Дивись також
MATOMO_URL¶
Повна адреса (разом із кінцевою похилою рискою) встановленого Matomo (раніше Piwik), яким ви хочете скористатися для стеження за використанням Weblate. Будь ласка, ознайомтеся із <https://matomo.org/>, щоб дізнатися більше.
Підказка
У цьому варіанті інтеграції не передбачено підтримки керування мітками Matomo.
Приклад:
MATOMO_SITE_ID = 1
MATOMO_URL = "https://example.matomo.cloud/"
Дивись також
NEARBY_MESSAGES¶
Кількість близьких рядків, які буде показано у обох напрямках у повній версії редактора.
Це лише стандартне значення, користувачі можуть налаштувати його в Профіль користувача.
DEFAULT_PAGE_LIMIT¶
Added in version 4.7.
Типова кількість показуваних елементів, коли увімкнено розбиття на сторінки.
PAGURE_CREDENTIALS¶
Added in version 4.3.2.
Список реєстраційних даних для серверів Pagure.
PAGURE_CREDENTIALS = {
"pagure.io": {
"username": "weblate",
"token": "your-api-token",
},
}
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Компонування є таким самим майже для усіх інтеграцій із системами керування версіями. Його описано у розділі Налаштування облікових даних системи керування версіями.
Дивись також
PASSWORD_MINIMAL_STRENGTH¶
Added in version 5.10.2.
Мінімальна оцінка пароля за допомогою zxcvbn оцінювача надійності пароля.
За замовчуванням 0, що означає, що перевірку міцності вимкнено.
Дивись також
PASSWORD_RESET_URL¶
Added in version 5.17.
URL-адреса для скидання пароля, коли автентифікація здійснюється зовнішнім постачальником ідентифікації, таким як LDAP, SAML або OAuth.
Якщо встановити Забули пароль? на сторінці входу, посилання буде вести на цю URL-адресу замість вбудованої сторінки Weblate для скидання пароля.
PRIVACY_URL¶
Added in version 4.8.1.
Адреса, за якою екземпляр Weblate показуватиме правила конфіденційності.
Підказка
When the Юридичний модуль module is enabled, this URL takes priority over its internal privacy page in document links. The default privacy template links to this URL when visited directly.
Приклад:
PRIVACY_URL = "https://weblate.org/terms/"
Дивись також
PRIVATE_COMMIT_EMAIL_OPT_IN¶
Added in version 4.15.
Configures whether the private commit e-mail is opt-in or opt-out.
With True (the default), users use their account e-mail unless they choose a
private commit e-mail. Set to False to use
PRIVATE_COMMIT_EMAIL_TEMPLATE by default.
Підказка
This setting applies to new and existing users who have not explicitly chosen a commit e-mail. Users can still choose their account e-mail in the Обліковий запис settings. Bot accounts do not use the private default.
PRIVATE_COMMIT_EMAIL_TEMPLATE¶
Added in version 4.15.
Template to generate a private commit e-mail for a user. Defaults to "user-{user_id}@users.noreply.{site_domain}".
Він може містити {user_id}, {username}, {site_title} та {site_domain}.
Set to a blank string to disable private commit e-mails and use the account e-mail when no commit e-mail has been explicitly chosen.
The default template uses the user ID rather than the username. Changing the template alone does not make private commit e-mails the default.
Змінено в версії 2026.11: The default previously used "{username}@users.noreply.{site_domain}".
Configure that template explicitly to retain the previous generated addresses.
Explicitly selected commit e-mail addresses are not changed.
Примітка
Використання іншої електронної адреси для комітів є опціональним для користувачів, якщо це не налаштовано за допомогою PRIVATE_COMMIT_EMAIL_OPT_IN. Користувачі можуть налаштувати свою електронну адресу для комітів у Загальнодоступний профіль.
Дивись також
PRIVATE_COMMIT_NAME_OPT_IN¶
Added in version 5.16.
Configures whether the private commit name is opt-in or opt-out.
With True (the default), users use their account name unless they choose a
private commit name. Set to False to use
PRIVATE_COMMIT_NAME_TEMPLATE by default.
Підказка
This setting applies to new and existing users who have not explicitly chosen a commit name. Users can still choose their account name in the Обліковий запис settings. Bot accounts use their account name.
PRIVATE_COMMIT_NAME_TEMPLATE¶
Added in version 5.16.
Шаблон для створення приватного імені коміту для користувача. За замовчуванням використовується "{site_title} user {user_id}".
Він може містити {user_id}, {username}, {site_title} та {site_domain}.
Set to a blank string to disable private commit names and use the account name. Changing the template alone does not make private commit names the default.
Примітка
Використання іншого імені коміту є опціональним для користувачів, якщо це не налаштовано за допомогою PRIVATE_COMMIT_NAME_OPT_IN. Користувачі можуть налаштувати своє ім’я коміту в Загальнодоступний профіль.
Дивись також
PROJECT_BACKUP_KEEP_COUNT¶
Added in version 4.14.
Визначає, скільки резервних копій на проєкт слід зберігати на сервері. Типовим значенням є 3.
Дивись також
PROJECT_BACKUP_KEEP_DAYS¶
Added in version 4.14.
Визначає, наскільки довго зберігатимуться резервні копії проєкту на сервері. Типовим значенням є 30 днів.
Дивись також
PROJECT_BACKUP_UPLOAD_MAX_SIZE¶
Added in version 5.17.1.
Configures the maximum size, in bytes, for uploaded project backup ZIP files. Defaults to 536870912 bytes (512 MiB).
У Docker це налаштовується за допомогою змінної середовища WEBLATE_PROJECT_BACKUP_UPLOAD_MAX_SIZE. Налаштування Docker також можуть обмежуватися змінною CLIENT_MAX_BODY_SIZE; інші розгортання можуть обмежуватися обмеженням розміру тіла запиту зворотного проксі-сервера.
Дивись також
PROJECT_BACKUP_IMPORT_MAX_MEMBERS¶
Added in version 5.17.
Визначає максимальну кількість записів ZIP, дозволених під час імпорту резервної копії проєкту.
Це запобіжний захід проти архівів із помилками у форматі або навмисно роздроблених архівів. За замовчуванням встановлено 100 000 записів.
In Docker, configure this using the
WEBLATE_PROJECT_BACKUP_IMPORT_MAX_MEMBERS environment variable.
Дивись також
PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE¶
Added in version 5.17.1.
Defines the maximum total uncompressed size, in bytes, for ZIP entries in an imported project backup. Defaults to 536870912 bytes (512 MiB).
Це обмежує архівні файли, які під час завантаження мають невеликий розмір, але під час перевірки або відновлення збільшуються до значно більшого обсягу даних.
In Docker, configure this using the
WEBLATE_PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE environment
variable.
Дивись також
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE¶
Added in version 5.17.
Визначає максимальний розмір у байтах одного сильно стисненого ZIP-елемента в імпортованій резервній копії проєкту.
Це обмеження застосовується лише до записів, які мають достатньо великий розмір і ступінь стиснення, щоб викликати підозру. Великі файли з низьким ступенем стиснення тут дозволені навмисно, і передбачається, що їх розмір буде обмежуватися обмеженням на завантаження по HTTP. За замовчуванням встановлено 262144000 байтів (250 Мб).
In Docker, configure this using the
WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE environment
variable.
Дивись також
PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE¶
Added in version 5.17.
Визначає мінімальний розмір файлу без стиснення (у байтах), при досягненні якого Weblate починає враховувати ступінь стиснення ZIP під час імпорту резервної копії проєкту.
Файли меншого розміру ігноруються під час перевірки на основі коефіцієнта стиснення, щоб уникнути відхилення файлів прийнятного розміру, які добре стискаються. За замовчуванням встановлено значення 1048576 байт (1 Мб).
In Docker, configure this using the
WEBLATE_PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE environment variable.
Дивись також
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO¶
Added in version 5.17.
Визначає максимально допустиме співвідношення між розміром нестисненого та стисненого файлу для великого елемента ZIP під час імпорту резервної копії проєкту.
Цей параметр використовується разом із PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE та PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE для виявлення записів із підозрілим ступенем стиснення, при цьому дозволяючи використовувати великі файли пакетів репозиторіїв та інший контент із низьким ступенем стиснення. За замовчуванням встановлено значення 250.
In Docker, configure this using the
WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO environment
variable.
Дивись також
PROJECT_NAME_RESTRICT_RE¶
Added in version 4.15.
Визначає формальний вираз для обмеження назв проєктів. Усі назви, відповідність яких виразу буде встановлено, буде заборонено.
Дивись також
PROJECT_WEB_RESTRICT_HOST¶
Added in version 4.16.2.
Заборонити використання певних хостів на сайті проєкту. Перевіряється будь-який піддомен, тому включення example.com також заблокує test.example.com. Список повинен містити тільки рядки в нижньому регістрі, аналіз домену перед зіставленням починається з нижнього регістру.
Типова конфігурація:
PROJECT_WEB_RESTRICT_HOST = {"localhost"}
PROJECT_WEB_RESTRICT_ALLOWLIST¶
Added in version 5.17.
Визначає набір коротких URL-адрес проектів, на які не поширюються обмеження PROJECT_WEB_RESTRICT_HOST, PROJECT_WEB_RESTRICT_NUMERIC, PROJECT_WEB_RESTRICT_PRIVATE та PROJECT_WEB_RESTRICT_RE під час перевірки веб-сайту проекту. Слуги проектів порівнюються без урахування регістру.
Застереження
Це виключення послаблює захист вихідних URL-адрес для відповідних проєктів, зокрема обмеження щодо приватних цілей, яке застосовується за допомогою параметра PROJECT_WEB_RESTRICT_PRIVATE. Використовуйте його лише для надійних проєктів, що перебувають під управлінням адміністратора, де обхід цих перевірок є навмисним.
Типова конфігурація:
PROJECT_WEB_RESTRICT_ALLOWLIST = set()
PROJECT_WEB_RESTRICT_NUMERIC¶
Added in version 4.16.2.
Заборонити використання числової IP-адреси на сайті проєкту. Типово ввімкнено.
PROJECT_WEB_RESTRICT_PRIVATE¶
Added in version 5.17.
Відхиляти URL-адреси веб-сайтів проєктів та браузерів репозиторіїв, що вказують на внутрішні або непублічні адреси. Увімкнено за замовчуванням.
PROJECT_WEB_RESTRICT_RE¶
Added in version 4.15.
Визначає регулярний вираз для обмеження того, що можна ввести як Вебсайт проєкту. Усі відповідні URL-адреси буде відхилено.
WEBHOOK_PRIVATE_ALLOWLIST¶
Added in version 5.17.
Визначає імена хостів або домени, на які не поширюється дія параметра WEBHOOK_RESTRICT_PRIVATE при відправленні вихідних веб-хуків. Записи відповідають семантиці зіставлення хостів у Django, тому можна використовувати такі значення, як hooks.internal.example або .internal.example.
Типова конфігурація:
WEBHOOK_PRIVATE_ALLOWLIST = []
Дивись також
WEBHOOK_RESTRICT_PRIVATE¶
Added in version 5.17.
Відхиляти URL-адреси веб-хуків, що вказують на внутрішні або непублічні адреси, якщо цільовий хост не вказано у WEBHOOK_PRIVATE_ALLOWLIST. Увімкнено за замовчуванням.
Якщо ця опція увімкнена, імена хостів, які не вдається розпізнати під час перевірки, відхиляються, якщо вони явно не вказані у WEBHOOK_PRIVATE_ALLOWLIST.
Дивись також
PUBLIC_ENGAGE¶
Added in version 5.16.2.
Дозволяє відкрити сторінку для взаємодії з аудиторією навіть при встановленому параметрі REQUIRE_LOGIN.
Дивись також
REPORT_EXPIRY¶
Defines how many days generated translation reports are retained. Defaults to 90 days. Changing the value also changes when existing reports become eligible for removal by the daily cleanup task.
RATELIMIT_NOTIFICATION_LIMITS¶
Added in version 5.14.
Обмежує кількість сповіщень, які буде надіслано одному користувачеві.
Налаштування за замовчуванням:
# Multi-level rate limiting for email notifications
# Each tuple contains (max_emails, time_window_seconds)
RATELIMIT_NOTIFICATION_LIMITS = [
# Prevent burst sends - 3 emails per 2 minutes
(3, 120),
# Equalize to avoid getting blocked for too long - 10 emails per hour
(10, 3600),
# Daily limit: 50 emails per day
(50, 86400),
]
API_RATELIMIT_ANON¶
Added in version 2026.10.
Default anonymous API rate limit. Defaults to "100/day".
Rates use a request count and a period of seconds, minutes, hours, or days, for
example "100/hour". A zero count rejects every request covered by this
throttle; None disables this throttle. Anonymous requests without an IP
override are also subject to API_RATELIMIT_USER.
API_RATELIMIT_USER¶
Added in version 2026.10.
Default authenticated API rate limit. Defaults to
"5000/hour". Uses the same rate syntax as API_RATELIMIT_ANON.
Authenticated requests are counted per user; anonymous requests are counted
per client IP. Set None to disable this throttle.
API_RATELIMIT_USER_OVERRIDES¶
Added in version 2026.10.
Mapping of exact usernames to API rate limits. Defaults to an empty dictionary.
Override rates require a positive request count, or None for an exemption.
These rules take precedence over API_RATELIMIT_IP_OVERRIDES.
API_RATELIMIT_USER_OVERRIDES = {"automation": "20000/hour"}
API_RATELIMIT_IP_OVERRIDES¶
Added in version 2026.10.
Mapping of IPv4 or IPv6 addresses and CIDR networks to API rate limits. Defaults
to an empty dictionary. The most specific matching network applies to both
anonymous and authenticated requests, unless a username override matches.
CIDRs must specify network addresses; duplicate normalized networks are rejected.
Override rates require a positive request count, or None for an exemption.
API_RATELIMIT_IP_OVERRIDES = {
"192.0.2.42": None,
"198.51.100.0/24": "10000/hour",
"2001:db8::/48": "10000/hour",
}
See Обмеження частоти у програмному інтерфейсі for counting behavior and trusted proxy requirements.
RATELIMIT_ATTEMPTS¶
Максимальна кількість спроб розпізнавання, перш ніж буде застосовано обмеження швидкості.
Типове значення — 5.
Дивись також
RATELIMIT_WINDOW¶
Тривалість періоду прийняття розпізнавання після застосування обмеження частоти.
Проміжок часу у секундах, типове значення — 300 (5 хвилин).
Дивись також
RATELIMIT_LOCKOUT¶
Тривалість періоду блокування розпізнавання після застосування обмеження частоти.
Проміжок часу у секундах, типове значення — 600 (10 хвилин).
Дивись також
RATELIMIT_BULK_EDIT_ATTEMPTS¶
Maximum browser bulk-edit submissions per user during
RATELIMIT_BULK_EDIT_WINDOW. Defaults to 10. Preview requests count
toward this limit.
RATELIMIT_BULK_EDIT_WINDOW¶
Window for browser bulk-edit rate limiting, in seconds. Defaults to 60.
RATELIMIT_BULK_EDIT_LOCKOUT¶
Lockout after exceeding the browser bulk-edit rate limit, in seconds. Defaults to 60.
RATELIMIT_MACHINERY_ATTEMPTS¶
Maximum interactive machine-translation requests per user during
RATELIMIT_MACHINERY_WINDOW. Defaults to 30. The usual superuser
rate-limit exemption applies.
Interactive requests also allow at most two concurrent calls per user per configured service installation. Other installations remain available. Excess requests return HTTP 429. Slots are released on completion or failure. Disconnected requests retain their slots until the provider work finishes, including synchronous calls already running in executor threads. Abandoned distributed locks expire after one hour.
RATELIMIT_MACHINERY_WINDOW¶
Window for interactive machine-translation rate limiting, in seconds. Defaults to 60.
RATELIMIT_MACHINERY_LOCKOUT¶
Lockout after exceeding the interactive machine-translation rate limit, in seconds. Defaults to 60.
RATELIMIT_OCR_ATTEMPTS¶
Maximum screenshot image text searches per signed-in session during
RATELIMIT_OCR_WINDOW. Defaults to 6.
RATELIMIT_OCR_WINDOW¶
Window for screenshot image text search rate limiting, in seconds. Defaults to 60.
RATELIMIT_OCR_LOCKOUT¶
Lockout after exceeding the screenshot image text search rate limit, in seconds. Defaults to 60.
REGISTRATION_ALLOW_BACKENDS¶
Added in version 4.1.
Список модулів розпізнавання, з яких уможливлено реєстрацію. Обмежує лише нові реєстрації. Користувачі зможуть проходити розпізнавання та додавати розпізнавання за допомогою всіх налаштованих модулів розпізнавання.
Рекомендуємо не вимикати REGISTRATION_OPEN, а обмежити роботу модулів реєстрації. Якщо ви цього не зробите, користувачі зможуть реєструватися, але Weblate не показуватиме посилань на реєстрацію в інтерфейсі користувача.
Приклад:
REGISTRATION_ALLOW_BACKENDS = ["azuread-oauth2", "azuread-tenant-oauth2"]
Підказка
Назви модулів відповідають назвам, використаним у адресі для розпізнавання.
Дивись також
REGISTRATION_CAPTCHA¶
Визначає, чи має бути захищено нові облікові записи за допомогою CAPTCHA. Типово, захист увімкнено.
If turned on, a CAPTCHA is added to all pages where a user enters their e-mail address:
Реєстрація нового облікового запису.
Відновлення пароля.
Додавання адреси електронної пошти до облікового запису.
Контактна форма для користувачів, які не увійшли до системи.
Зараз захист складається з наступних кроків:
Математична капча, яку розгадує користувач.
Proof of work challenge calculated by the browser. The difficulty can be adjusted using
ALTCHA_COST,ALTCHA_MEMORY_COST, andALTCHA_PARALLELISM.
REGISTRATION_EMAIL_MATCH¶
Надає вам змогу фільтрувати, які адреси електронної пошти можна реєструвати.
The restriction also applies to addresses imported from authentication
providers and addresses selected as public or commit e-mail addresses.
Provider addresses that do not match are skipped. This includes GitHub
noreply addresses: to use them for commits, explicitly allow
users.noreply.github.com in the expression.
Типове значення — .*, що надає змогу реєструвати будь-яку адресу електронної пошти.
Ви можете скористатися ним для обмеження реєстрації єдиним доменом електронної пошти:
REGISTRATION_EMAIL_MATCH = r"^.*@weblate\.org$"
REGISTRATION_ALLOW_DISPOSABLE_EMAILS¶
Added in version 5.16.1.
Дозволити реєстрацію з використанням одноразових доменів електронної пошти. Якщо ця опція увімкнена, список заблокованих одноразових доменів ігнорується. За замовчуванням встановлено значення False.
This also applies to addresses imported from authentication providers and addresses selected as public or commit e-mail addresses.
REGISTRATION_OPEN¶
Визначає, чи дозволено реєстрацію нових облікових записів. Типово увімкнено.
Цей параметр впливає на вбудовану автентифікацію за адресою електронної пошти або через соціальну автентифікацію Python (ви можете дозволити певні бек-енди за допомогою REGISTRATION_ALLOW_BACKENDS).
Примітка
Якщо використано сторонні способи розпізнавання, зокрема Розпізнавання за допомогою LDAP, це просто призводить до приховування реєстраційної форми, але нові користувачі попри це зможуть входити до системи і створювати облікові записи.
REGISTRATION_REBIND¶
Added in version 4.16.
Allow signed-out users to link a new third-party authentication provider to an existing account when its e-mail address matches. Turn this on when migrating between trusted authentication providers. Existing users can add a provider while signed in regardless of this setting. E-mail registration and password reset use their own confirmation flow and are not affected.
Примітка
Off by default. When enabled, Weblate trusts configured providers“ e-mail claims for account matching. Use only providers that verify these addresses; otherwise another person could link an identity to an existing account.
REPOSITORY_ALERT_THRESHOLD¶
Added in version 4.0.2.
Порогове значення для вмикання попередження щодо застарілих сховищ, у яких міститься надто багато змін. Типове значення — 25.
Дивись також
OIDC_PROVIDER_ENABLED¶
Added in version 2026.11.
Enable Weblate’s optional OpenID Connect identity provider. Defaults to False.
Install the oidc extra, add weblate.oidc and oauth2_provider to
INSTALLED_APPS, and configure signing keys before enabling it.
OAUTH2_PROVIDER¶
Added in version 2026.11.
Configuration dictionary for the optional OpenID Connect identity provider, using
Django OAuth Toolkit settings.
OIDC_RSA_PRIVATE_KEY must contain an unencrypted RSA private key of at
least 2048 bits. OIDC_RSA_PRIVATE_KEYS_INACTIVE can contain previous keys
for rotation. Load keys from protected files rather than storing them in
version control.
Weblate supplies identity scopes, its claim validator, the canonical issuer, HTTPS redirect requirements, S256 PKCE, one-hour access and ID token lifetimes, and rotating refresh tokens with a 30-day idle expiry. Entries in this dictionary override these defaults. Keep the Weblate claim validator to preserve account eligibility checks and identity claim mapping. The provider accepts RS256 authorization-code clients and refresh tokens. Public clients authenticate using S256 PKCE without a client secret.
Weblate enables the toolkit’s RFC 9700 protections by default. Authorization
responses include the iss issuer parameter, and newly issued access and
refresh tokens are stored as hashes. Enabling hashed storage does not erase
plaintext token values already present in the database.
REFRESH_TOKEN_GRACE_PERIOD_SECONDS defaults to 0. A client that loses a
refresh response may need the user to sign in again. A nonzero grace period
requires setting COMPLIANT_BCP_RFC9700_TOKEN_STORAGE to False, which stores
usable token values in the database. The toolkit’s deployment checks reject
combining hashed storage with a nonzero grace period. They also reject disabling
refresh-token replay protection or PKCE, allowing HTTP callbacks, or enabling
wildcard redirect matching while the corresponding compliance gates are enabled.
REQUIRE_LOGIN¶
Added in version 4.1.
Це вмикає django.contrib.auth.middleware.LoginRequiredMiddleware та налаштовує REST framework на вимогу автентифікації для всіх кінцевих точок API.
Змінено в версії 5.15: Weblate тепер покладається на вбудоване проміжне програмне забезпечення Django.
Примітка
Це реалізовано у Зразок налаштувань. Для Docker скористайтеся WEBLATE_REQUIRE_LOGIN.
Дивись також
GOOGLE_CLOUD_ERROR_REPORTING¶
Configuration for Збирання звітів щодо помилок та стеження за швидкодією using Google Cloud Error Reporting.
Set to None to disable the integration, or set to a dictionary of keyword
arguments for the Google Cloud Error Reporting client.
Weblate automatically supplies service as weblate and version as
the current Weblate version or Git revision. Explicit values in the dictionary
override these defaults.
OPENTELEMETRY_ENABLED¶
Added in version 2026.6.
Enable backend tracing using OpenTelemetry. Disabled by default.
Traces are exported only when this is enabled and
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT is configured.
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT¶
OTLP HTTP traces endpoint for OpenTelemetry, for example
https://collector.example.com/v1/traces.
OPENTELEMETRY_EXPORTER_OTLP_HEADERS¶
Additional HTTP headers for the OpenTelemetry OTLP exporter. Defaults to an empty dictionary.
OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES¶
Additional OpenTelemetry resource attributes. Defaults to an empty dictionary.
OPENTELEMETRY_SERVICE_NAME¶
OpenTelemetry service name. Defaults to weblate.
OPENTELEMETRY_TRACES_SAMPLE_RATE¶
Configure sampling rate for OpenTelemetry traces. Set to 1 to trace all events, 0 (the default) disables tracing.
SENTRY_DSN¶
Sentry DSN, яким слід скористатися для Збирання звітів щодо помилок та стеження за швидкодією.
Дивись також
SENTRY_ENVIRONMENT¶
Налаштовує середовище для Sentry. Типовим є devel.
SENTRY_MONITOR_BEAT_TASKS¶
Added in version 5.13.
Налаштуйте, чи слід моніторити завдання Celery Beat за допомогою Sentry. За замовчуванням — True.
SENTRY_PROFILES_SAMPLE_RATE¶
Configure sampling rate for performance monitoring. Set to 1 to profile all traced events (the default), 0 disables profiling.
Дивись також
SENTRY_SEND_PII¶
Дозволити Sentry збирання певних даних особистої ідентифікації. Типово вимкнено.
Змінено в версії 5.7: У поточній версії типово вимкнено, раніше було увімкнено.
SENTRY_TRACES_SAMPLE_RATE¶
Налаштувати частоту спостереження за профілюванням. Встановіть значення 1 для стеження за усіма подіями, 0 (типове значення) вимикає трасування.
Дивись також
SIMPLIFY_LANGUAGES¶
Використовувати прості коди мов для типових комбінацій мова-країна. Наприклад, для перекладу fr_FR буде використано код мови fr. Зазвичай, така поведінка є бажаною, оскільки спрощує побудову списку мов для цих типових комбінацій.
Вимкніть, якщо вам потрібні різні переклади для кожного з варіантів.
SITE_DOMAIN¶
Налаштовує домен сайта. Домен потрібен для створення правильних абсолютних посилань у багатьох областях застосування (наприклад, для повідомлень активації, сповіщень та стрічок RSS).
Якщо Weblate запущено на нестандартному порту, допишіть його до вказаної адреси.
Приклади:
# Production site with domain name
SITE_DOMAIN = "weblate.example.com"
# Local development with IP address and port
SITE_DOMAIN = "127.0.0.1:8000"
Примітка
Цей параметр має містити лише назву домену. Для налаштованого протоколу (увімкнутого і примусово встановленого HTTPS) скористайтеся ENABLE_HTTPS, а для зміни адреси скористайтеся URL_PREFIX.
Підказка
У контейнері Docker домен сайта можна налаштувати за допомогою WEBLATE_ALLOWED_HOSTS.
SITE_TITLE¶
Назва сайта, яку буде використано для сайта і надсилання повідомлень електронною поштою.
SPECIAL_CHARS¶
Додаткові символи, які слід включити на візуальну клавіатуру, Візуальна клавіатура.
Типове значення:
SPECIAL_CHARS = ("\t", "\n", "\u00a0", "…")
SINGLE_PROJECT¶
Переспрямовує користувачів безпосередньо до проєкту або складника замість показу панелі приладів. Ви можете встановити значення True — у цьому випадку це працюватиме, лише якщо на Weblate є лише один проєкт. У протилежному випадку встановіть ідентифікатор проєкту, і він безумовно переспрямовуватиме до цього проєкту.
Приклад:
SINGLE_PROJECT = "test"
SSH_EXTRA_ARGS¶
Added in version 4.9.
Уможливлює додавання нетипових параметрів, якщо Weblate викликає SSH. Це корисно, при встановленні з’єднання із серверами з використанням застарілого шифрування або іншими нестандартними можливостями.
Наприклад, при встановленні з’єднання SSH у Weblate з’являється повідомлення про помилку Unable to negotiate with legacyhost: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1, ви можете увімкнути потрібні можливості за допомогою такого:
SSH_EXTRA_ARGS = "-oKexAlgorithms=+diffie-hellman-group1-sha1"
Підказка
Рядок буде оброблено командною оболонкою, тому слід взяти у лапки усі пробіли і спеціальні символи.
Попередження
This is trusted administrator-controlled configuration. Arbitrary SSH
options can alter connection routing and override the address pinning
provided by VCS_RESTRICT_PRIVATE. Administrators are responsible
for the security and compatibility impact of all configured arguments.
Дивись також
STATUS_URL¶
Адреса, на яку екземпляр Weblate повідомляє про свій стан.
SUPPORT_STATUS_CHECK¶
Added in version 5.5.
Defaults to True. When enabled, superusers without integrated support are
redirected after login to a page offering professional support, at most once
every 180 days per account. The reminder starts once the installation has a
change older than 14 days and waits for an HTML page navigation. A
Continue to Weblate action returns to the intended page.
Set this to False to disable the redirect. This does not hide support or
donation links elsewhere in the interface.
Підказка
Удоскональте роботу з Weblate, придбавши передплату на підтримку і прискорюючи прогрес Weblate замість того, щоб вимкнути її.
TRANSLATION_MAX_SIZE¶
Added in version 2026.11.2.
Maximum size, in bytes, of a translation file before parsing. Applies to all
formats and to repository files as well as uploads, including source templates
and intermediate files. For directory-based formats, the limit applies to each
metadata file. When unset or None, uses TRANSLATION_UPLOAD_MAX_SIZE
(50 MB by default). An explicit value overrides this fallback.
Uploads must also satisfy TRANSLATION_UPLOAD_MAX_SIZE, even when
TRANSLATION_MAX_SIZE is higher. This byte limit does not bound decompression
or other expansion performed by a parser.
Translation files are also limited to 100,000 logical content strings per file before database synchronization or import. Existing tighter limits for compressed formats remain in effect.
In Docker, configure this using WEBLATE_TRANSLATION_MAX_SIZE.
TRANSLATION_UPLOAD_MAX_SIZE¶
Added in version 5.17.1.
Встановлює максимальний розмір завантажуваних файлів перекладу в байтах. За замовчуванням — 50 МБ.
Uploads must also satisfy TRANSLATION_MAX_SIZE.
У Docker налаштуйте це за допомогою змінної середовища WEBLATE_TRANSLATION_UPLOAD_MAX_SIZE.
UNUSED_ALERT_DAYS¶
Added in version 4.17.
Налаштовує часову умову для появи нагадування Здається, складником не користуються.
Типовим значенням є 365 днів. Встановіть 0, щоб вимкнути обмеження.
UPDATE_LANGUAGES¶
Added in version 4.3.2.
Керує тим, чи слід оновлювати базу даних мови під час перенесення бази даних. Типово увімкнено. Цей параметр не впливає на підсумки виклику setuplang.
Попередження
З цим параметром показ мов може стати неоднорідним. Визначення мов Weblate з часом розширюють, і код мови для визначених мов не буде показано.
Дивись також
URL_PREFIX¶
За допомогою цього параметра ви можете запускати Weblate з певним значенням шляху (якщо параметр не вказано, програма покладатиметься на те, що її запущено з кореневого каталогу вебсервера).
Примітка
Щоб скористатися цим параметром, вам також слід налаштувати ваш сервер на вилучення цього префікса. Наприклад, для WSGI вилучення можна досягти встановленням параметра WSGIScriptAlias.
Підказка
Префікс має розпочинатися з /.
Приклад:
URL_PREFIX = "/translations"
Примітка
Цей параметр не працює із вбудованим сервером Django. Вам доведеться скоригувати urls.py так, щоб у ньому містився цей префікс.
When using a URL prefix, expose Weblate’s prefixed robots.txt at the origin’s
/robots.txt through your reverse proxy. Its crawl rules and sitemap URL
include the configured prefix. If other applications share the origin, merge
their crawl rules in the proxy-served document as appropriate.
VCS_ALLOW_HOSTS¶
Added in version 5.15.
Набір хостів, які слід дозволити під час налаштування URL-адреси VCS. За замовчуванням використовується порожній набір, що означає відсутність будь-якої фільтрації.
When VCS_RESTRICT_PRIVATE is enabled, matching hosts are also exempt
from the private-target restriction. This exemption is also needed for VCS
backends which cannot bind the client connection to the address validated by
Weblate, such as Mercurial and Subversion.
Use VCS_PRIVATE_ALLOWLIST instead when hosts should be exempt from
the private-target restriction without filtering access to other public hosts.
VCS_PRIVATE_ALLOWLIST¶
Added in version 2026.9.
Defines hostnames or domains exempt from VCS_RESTRICT_PRIVATE.
Unlike VCS_ALLOW_HOSTS, this setting does not filter access to other
hosts. Entries follow Django host matching semantics, so values such as
vcs.internal.example or .internal.example can be used.
The exemption is needed for VCS backends which cannot bind the client connection to the address validated by Weblate, such as Mercurial and Subversion. It can also be used to allow private Git repository hosts.
When VCS_ALLOW_HOSTS is non-empty, its host filter still applies and
takes precedence over this allowlist.
Типова конфігурація:
VCS_PRIVATE_ALLOWLIST = []
Дивись також
VCS_ALLOW_SCHEMES¶
Added in version 5.15.
Набір схем URL-адрес, які слід дозволити під час налаштування URL-адреси VCS. За замовчуванням дозволено лише https та ssh.
The file scheme and bare filesystem paths are disabled for security reasons
because they could allow component editors to access repositories on the server
filesystem. Including file in this setting prevents Weblate from starting
with an ImproperlyConfigured error.
VCS_RESTRICT_PRIVATE¶
Added in version 5.17.
Reject VCS repository URLs pointing to internal or non-public addresses unless
the target host is included in VCS_ALLOW_HOSTS or matches
VCS_PRIVATE_ALLOWLIST. On by default.
When enabled, hostnames that cannot be resolved during validation are rejected
unless they are trusted by VCS_ALLOW_HOSTS or
VCS_PRIVATE_ALLOWLIST.
For Git repositories accessed over HTTPS or SSH, Weblate binds each VCS command
to the addresses approved during runtime validation for direct connections.
Configured HTTP proxies are trusted infrastructure and resolve repository
hostnames instead. Automatic redirect following remains disabled. Permanent
same-host HTTP redirects are probed separately through the same outbound route,
validated, and stored as the canonical component repository URL. Cross-host
redirects have to be configured manually. Mercurial, Subversion, custom VCS
backends, and additional URL schemes are rejected unless the target host is
trusted by VCS_ALLOW_HOSTS or VCS_PRIVATE_ALLOWLIST.
Network-level egress filtering which blocks internal, loopback, link-local, reserved, and cloud metadata address ranges is recommended as defense in depth, especially for custom integrations and administrator-installed extensions.
VCS_API_DELAY¶
Added in version 4.15.1.
Configures minimal delay in seconds between third-party API calls in Запити щодо злиття GitHub, Запити щодо об’єднання GitLab, Запити щодо злиття Gitea, Запити щодо об’єднання Pagure, and Запити щодо об’єднання Azure DevOps.
Це обмежує частоту викликів програмного інтерфейсу з Weblate до цих служб, щоб уникнути перевантаження.
Якщо вашу роботу обмежує вторинний засіб обмеження частоти на GitHub, може допомогти збільшення цього значення.
Типове значення: 10.
VCS_API_TIMEOUT¶
Added in version 5.15.
Configures timeout in seconds for third-party API calls such as forking or creating merge requests in Запити щодо злиття GitHub, Запити щодо об’єднання GitLab, Запити щодо злиття Gitea, Запити щодо об’єднання Pagure, and Запити щодо об’єднання Azure DevOps.
Типове значення: 10.
VCS_BACKENDS¶
Налаштовування доступних модулів систем керування версіями.
Примітка
Weblate offers configured backends when their required commands are available. Exact command versions are validated by the deployment and periodic configuration health checks.
Підказка
За допомогою цього ви можете обмежити варіанти і додавати нетипові модулі систем керування версіями.
VCS_BACKENDS = ("weblate.vcs.git.GitRepository",)
Дивись також
VCS_CLONE_DEPTH¶
Визначає, наскільки глибоким має бути клонування сховищ у Weblate.
Примітка
У поточній версії підтримку передбачено лише у Git. Типово, Weblate створює поверхневі клони сховищ, щоб пришвидшити клонування і заощадити місце на диску. Залежно від ваших підходів до користування (наприклад, використання нетипових Додатки), у вас може виникнути потреба у збільшенні глибини або вимиканні поверхневих клонів повністю встановленням значення 0.
Підказка
Якщо при записі з Weblate ви отримуєте повідомлення fatal: protocol error: expected old/new/ref, got 'shallow <commit hash>', вимкніть поверхневі клонування повністю:
VCS_CLONE_DEPTH = 0
WEBLATE_ADDONS¶
Список додатків, якими можна скористатися. Щоб скористатися ними, їх слід увімкнути для певного складника перекладу. Типово, до списку буде включено всі вбудовані додатки. За розширення списку вам, імовірно, слід зберегти наявні додатки ввімкненими. Приклад:
WEBLATE_ADDONS = (
# Built-in add-ons
"weblate.addons.gettext.GenerateMoAddon",
"weblate.addons.gettext.UpdateLinguasAddon",
"weblate.addons.gettext.UpdateConfigureAddon",
"weblate.addons.gettext.MsgmergeAddon",
"weblate.addons.cleanup.CleanupAddon",
"weblate.addons.consistency.LanguageConsistencyAddon",
"weblate.addons.discovery.DiscoveryAddon",
"weblate.addons.flags.SourceEditAddon",
"weblate.addons.flags.TargetEditAddon",
"weblate.addons.flags.SameEditAddon",
"weblate.addons.flags.BulkEditAddon",
"weblate.addons.generate.GenerateFileAddon",
"weblate.addons.properties.PropertiesSortAddon",
"weblate.addons.git.GitSquashAddon",
"weblate.addons.removal.RemoveComments",
"weblate.addons.removal.RemoveSuggestions",
"weblate.addons.resx.ResxUpdateAddon",
"weblate.addons.autotranslate.AutoTranslateAddon",
"weblate.addons.cdn.CDNJSAddon",
# Add-on you want to include
"weblate.addons.example.ExampleAddon",
)
Примітка
Вилучення додатка зі списку не призводить до видалення його зі складників. У цьому випадку стається збій Weblate. Вилучте додаток з усіх складників, перш ніж вилучати його зі списку.
ADDON_ACTIVITY_LOG_EXPIRY¶
Added in version 5.6.
Дозволяє налаштувати тривалість зберігання журналів діяльності додатків. Типовим значенням є 180 днів.
WEBLATE_EXPORTERS¶
Added in version 4.2.
List of available exporters offering translation downloads or glossaries in various file formats.
Дивись також
WEBLATE_FORMATS¶
Список форматів файлів, якими ви можете скористатися.
Примітка
У типовому списку вже є загальновживані формати.
Дивись також
MACHINERY_ERROR_KEEP_DAYS¶
Added in version 2026.11.
Configures how long translation service error logs are kept, in days. Defaults to 30. A daily background task removes older entries.
WEBLATE_MACHINERY¶
Added in version 4.13.
List of translation services available for use.
WEBLATE_GPG_IDENTITY¶
Профіль, який буде використано Weblate для підписування Git. Приклад:
WEBLATE_GPG_IDENTITY = "Weblate <weblate@example.com>"
Програма виконає пошук у сховищі ключів GPG Weblate відповідного ключа (home/.gnupg у DATA_DIR). Якщо ключа не буде знайдено, ключ буде створено. Будь ласка, ознайомтеся із розділом Підписування внесків Git за допомогою GnuPG, щоб дізнатися більше.
Дивись також
WEBSITE_REQUIRED¶
Визначає, чи має бути вказано Вебсайт проєкту при створенні проєкту. Типово увімкнено, оскільки це відповідає налаштуванням загальнодоступних серверів.
WEBSITE_ALERTS_ENABLED¶
Added in version 5.17.
Типове значення: True
Визначає, чи повинен Weblate перевіряти доступність веб-сайтів проектів і показувати сповіщення про недоступні веб-сайти проектів.
Якщо встановити значення False, Weblate пропустить перевірку доступності веб-сайту та не створюватиме сповіщення щодо веб-сайту проекту. Це корисно в таких випадках:
Ваші веб-сайти захищені брандмауерами, які блокують запити Weblate
Ви хочете уникнути помилок типу 403/503, пов’язаних із захистом від ботів
Доступність веб-сайту проекту не впливає на вашу інсталяцію
Дивись також
Налаштування облікових даних системи керування версіями¶
Підказка
У цьому розділі описано змінні реєстраційних даних систем керування версіями, зокрема GITHUB_CREDENTIALS, GITLAB_CREDENTIALS, GITEA_CREDENTIALS, PAGURE_CREDENTIALS, BITBUCKETSERVER_CREDENTIALS.
Словник налаштувань складається з реєстраційних даних, які визначено для кожного вузла API. Вузол API може відрізнятися від того, яким ви користуєтеся у браузері. Наприклад, доступ до програмного інтерфейсу GitHub здійснюється за допомогою api.github.com.
Облікові дані також можна перевизначити у Адреса для записування до сховища або Сховище з джерелами (якщо не налаштовано URL для push), вони мають пріоритет над тими, що вказані у файлі конфігурації.
Для кожного вузла доступні такі налаштування:
usernameКористувач API, має бути вказано обов’язково.
tokenЖетон для користувача API, має бути вказано обов’язково.
schemeAdded in version 4.18.
Перевизначено схеми. Weblate намагається обробити схему з адреси сховища, і якщо не вдасться, використовує
https. Якщо ви працюєте з сервером програмного інтерфейсу у внутрішній мережі, можна скористатися замість неїhttp, але зважайте на захист.
Підказка
У контейнері Docker реєстраційні дані можна налаштувати за допомогою змінних середовища, див. Code-hosting sites credentials.
Anonymous bot protection¶
Added in version 2026.11.
Попередження
This feature is a technology preview for evaluating application-aware bot protection as an alternative to Anubis. Its configuration and behavior may change, and it may be removed if it does not prove sufficiently useful. Long-term maintenance is not guaranteed.
While verification runs automatically, visitors see a randomly selected tip about Weblate features.
BOT_PROTECTION_ENABLED¶
Default: False. Enable self-hosted, proactive proof of work for anonymous
visitors. Place weblate.utils.bot_protection.BotProtectionMiddleware after
Django’s session middleware and before Weblate’s authentication middleware,
following the example settings. Authenticated users bypass protection, including
when no proof-of-work cookie exists. Existing authentication and API rate limits
remain in effect. Proof of work never grants authentication or permissions.
Anonymous HTML GET requests receive an automatic challenge. HEAD and unsafe
methods receive HTTP 403 without challenge HTML; request bodies are never
replayed. REST API requests without an explicit HTML Accept media type are
exempt. HTML API browsing requires verification. Changing Accept on a regular
page route does not exempt it. Account routes under /accounts/ are exempt so
sign-in flows and redirects to login work without verification. Hooks, widget
images (including legacy image redirects), feeds, OIDC provider routes under
/oidc/, static files, health, robots, and well-known routes are exempt.
Hosted integration API routes under /hosted/api/ are exempt when
wlhosted.integrations is installed; their signed-payload authentication
remains in effect.
Widget configuration pages remain protected. Public assets, including custom
CSS, manifests, icons, and Open Graph images, are exempt. The JavaScript
translation catalog and Засіб експортування Git protocol routes, including clone
redirects, are also exempt so they can use their existing localization and
authentication. Login exemptions and bot exemptions are independent; making a
view public does not automatically bypass bot protection.
BOT_PROTECTION_DIFFICULTY¶
Default: 4. Number of leading hexadecimal zeroes required, from 1 to 6.
Four zeroes require an average of 65,536 SHA-256 attempts. ALTCHA v2 runs with
SHA-256 and cost 1: challenge generation performs no candidate hashing and
verification performs one candidate hash, independent of difficulty. Registration
and other form CAPTCHAs retain their existing Argon2id configuration.
Challenge and clearance lifetime¶
BOT_PROTECTION_CHALLENGE_AGE defaults to 300 seconds (allowed: 1–3600).
BOT_PROTECTION_COOKIE_AGE defaults to 3600 seconds (allowed: 1–86400).
Clearance has a fixed expiry and is bound to the client IP and deployment.
Cookies are host-only, Secure, HttpOnly, and SameSite=Lax. HTTPS is required.
Network changes require another challenge. Shared NAT clients can share copied
clearance; PoW increases harvesting cost but does not prevent capable solvers.
The challenge uses a separate CSRF cookie and Django’s token and origin checks,
without creating an application session. After solving a challenge, the browser checks its clearance cookie through
/-/pow/check/ before navigating, without invoking the destination view. An
expired challenge is refreshed automatically once; repeated expiry and other
failures leave Retry and sign-in available. Failure messages distinguish invalid
verification, replay, cookie/CSRF problems, and service unavailability.
Browser workers calculate the solution without blocking the main thread. Visitors without JavaScript or workers can sign in instead. Challenge assets must be available from the same origin.
BOT_PROTECTION_CACHE_ALIAS¶
Default: "default". Shared Redis or Memcached cache used to atomically consume
valid solutions once. No replay entries are created for unsolved challenges.
Cache failures reject verification with HTTP 503. Ordinary clearance checks do
not access the database or shared cache. Sessionless challenge generation only
accesses the shared cache to increment a best-effort issued-challenge counter.
Keep the replay cache available and sized to retain entries through challenge
expiry: eviction or cache loss can permit reuse of otherwise valid solutions.
Normal Django session validation still accesses the configured session backend.
The management Performance report shows issued challenges and
verification outcomes for the current hour and the previous 24 completed hours.
It also shows requests rejected with pow_required without issuing a challenge
because of their method or Accept header. These counts exclude explicit
bot_denied policy denials and exempt requests, and count requests rather than
unique clients.
Hours are aligned to UTC. Hourly buckets in the PoW cache expire after 25 hours;
eviction and outages can lose counts. Counter failures never change challenge
or verification responses. Following an upgrade from minute buckets, totals
populate as new events occur.
These counts are also available from GET /api/metrics/. Issued challenges
and verification outcomes indicate relative volumes, not an exact count of
unattempted challenges: verification requests can include retries, replays, and
malformed submissions.
The weblate.bot_protection logger emits structured verification events with
event, reason, status, and count fields, without proof payloads or
client identifiers. Configure a log handler that retains these fields for
diagnosis during cache outages. Clearance checks remain independent of the
cache; issued-challenge, pow_required, and verification outcome counters use it.
BOT_PROTECTION_EXEMPT_PATHS¶
Default: []. Additional paths relative to the Weblate deployment prefix.
A trailing slash exempts that entire path prefix; other entries match exactly.
Use narrow exceptions for integrations that cannot solve challenges.
BOT_PROTECTION_EXEMPT_AGENTS¶
Default: []. Case-insensitive User-Agent regular expressions that bypass bot
protection for all HTTP methods and paths. Patterns use search matching against
the first 1,024 characters of the header. Invalid expressions prevent startup
when bot protection is enabled.
Use this for uptime monitoring of application pages, such as measuring latency
on /. Simple health checks on /healthz/ are already exempt.
For a monitor configured to send the User-Agent Weblate-Uptime/1.0:
BOT_PROTECTION_EXEMPT_AGENTS = [r"^Weblate-Uptime/1\.0$"]
These exemptions trust a client-supplied, spoofable header. They override unwanted-agent denial and do not depend on crawler verification or robots.txt. They bypass only bot protection: authentication, permissions, and existing rate limits still apply. The proof-of-work verification endpoint retains its normal validation.
Verified crawler configuration¶
BOT_PROTECTION_CRAWLER_FILE defaults to an empty string, selecting the packaged
IP snapshot. The initial set follows Anubis’s IP-based allowed-crawler definitions
and adds SeznamBot:
Googlebot, Bingbot, Applebot, DuckDuckBot, QwantBot, MojeekBot, Marginalia, Common Crawl (CCBot), Arquivo.pt, and SeznamBot use official address feeds.
KagiBot, Internet Archive, and Wikimedia’s Citoid and Zotero translation services use reviewed bundled ranges, maintained with Weblate releases.
Verification requires a matching User-Agent and source IP. Verified crawlers bypass protection only for GET and HEAD requests to paths allowed by the shared robots.txt crawl policy, including sitemap documents. Other requests follow the normal challenge or deny policy. Explicit endpoint exemptions, configured exempt paths, valid clearance, and authenticated sessions still take precedence. Internet Archive and Arquivo.pt deliberately allow their listed networks regardless of User-Agent, following Anubis so that browser-like archival requests work. These exceptions trust the service networks, not individual crawler processes. No crawler bypass grants authentication or access to private content.
Set an absolute writable filename and run weblate update_crawler_ranges daily
using an operator-managed scheduler, then restart all application workers to
load the updated snapshot. It downloads bounded datasets only from
fixed official HTTPS sources and publishes validated updates atomically. A failed
provider retains its previous ranges and retrieval time; successful providers
still update. The command exits unsuccessfully and lists failed providers, so
monitor its exit status. Administrator-defined entries are preserved.
HTTP requests never download ranges or perform DNS lookups.
Crawler snapshots are loaded once during application startup. Requests use parsed networks in memory without checking file freshness or retrieval age. Ranges remain active until restart; packaged snapshots are updated through Weblate releases. Custom snapshot updates also require restarting application workers. Retrieval timestamps are metadata and do not expire ranges.
BOT_PROTECTION_CRAWLER_RULES defaults to {} and extends or overrides the
mapping from provider identifiers to User-Agent regular expressions. Built-in
identifiers are googlebot, bingbot, applebot, duckduckbot,
qwantbot, mojeekbot, marginalia, commoncrawl, arquivo-pt,
seznambot, kagibot, internet-archive, and wikimedia-citoid.
Custom providers must also have verified CIDRs in the local snapshot’s ranges
mapping and a Unix retrieval timestamp in its refreshed_at mapping, both keyed
by provider identifier. Record official sources when maintaining custom ranges.
Unwanted crawler configuration¶
BOT_PROTECTION_UNWANTED_AGENTS defaults to [] and accepts User-Agent
regular expressions. BOT_PROTECTION_UNWANTED_ACTION defaults to
"challenge"; use "deny" to return HTTP 403 instead. Valid clearance and
session authentication take precedence. These rules are an administrative
policy, not verified identity. No GeoIP, fingerprinting, or behavioral scoring
is performed.
Deploy behind HTTPS and configure Робота за реверсивним проксі-сервером client-IP handling correctly. Do not trust client-supplied forwarding headers. Disable shared proxy caching for protected application routes and preserve no-store responses and cookies. Apply proxy body-size and connection limits: application PoW does not protect against volumetric network attacks.
Benchmarking¶
Use a disposable HTTPS deployment with production-like data and proxy caching
disabled. Copy Cookie headers for an authenticated browser and a cleared anonymous
browser into separate private files. Run the following command, supplying all
application worker process IDs with repeated --server-pid arguments:
.venv/bin/python scripts/benchmark-bot-protection.py https://test.example/projects/ \
--authenticated-cookie-file /tmp/auth-cookie \
--clearance-cookie-file /tmp/pow-cookie --server-pid 1234
The script reports requests per second, worker CPU seconds, resident memory, status counts, and p50/p95/p99 latency at concurrency 1, 32, and 128. It compares authenticated, cleared anonymous, new anonymous, and repeated unsolved requests. Distinct anonymous cookie states simulate many visitors without creating Django sessions; to measure distinct source IPs, run load generators on multiple hosts. Supply process IDs for the shared cache as well when measuring its CPU cost. Cookie files contain credentials: remove them after the benchmark. Record machine specifications, worker counts, page data, proxy configuration, and cache setup alongside results. Check status counts to catch expired cookies during a run.