Додаткові модулі Weblate¶
Для вашої конфігурації доступні декілька додаткових модулів.
Засіб експортування Git¶
Надає вам доступ лише до читання підлеглого сховища Git за допомогою HTTP(S).
Установлення¶
Додайте
weblate.gitexportдо запису встановлених програм уsettings.py:INSTALLED_APPS += ("weblate.gitexport",)
Експортування наявних сховищ перенесенням вашої бази даних після встановлення:
weblate migrate
Підказка
Експортер Git’а увімкнено у нашому офіційному образі Docker. Щоб увімкнути його, скористайтеся:
WEBLATE_REMOVE_APPS=weblate.gitexport
Користування¶
Модуль автоматично підключається до Weblate та встановлює експортовану URL-адресу репозиторію в Налаштовування складників. Репозиторії доступні в частині /git/ URL-адреси Weblate, наприклад https://example.org/git/weblate/main/.
Сховища для загальнодоступних проєктів можна клонувати без розпізнавання:
git clone 'https://example.org/git/weblate/main/'
Доступ до перегляду репозиторіїв з обмеженим доступом (з Private access control або коли REQUIRE_LOGIN увімкнено) вимагає токена API, який можна отримати у вашому user profile:
git clone 'https://user:KEY@example.org/git/weblate/main/'
Примітка
Weblate надає доступ до самого репозиторію Git, але не до об’єктів Git LFS. Для репозиторіїв, що використовують Git LFS, слід клонувати репозиторій з вихідного джерела та додати Weblate як ще один віддалений сервер. Якщо вам потрібні лише файли, що відстежуються Git, ви можете клонувати репозиторій з Weblate, вказавши параметр GIT_LFS_SKIP_SMUDGE=1, щоб пропустити завантаження об’єктів Git LFS.
Підказка
Типово учасники або групи Користувач та анонімний користувач мають доступ до сховищ для загальнодоступних проєктів за допомогою ролей Доступ до сховища та Досвідчений користувач.
Оплата¶
Це використовується на Hosted Weblate для визначення тарифних планів, створення рахунків та встановлення обмежень у користуванні.
Установлення¶
1. Add weblate.billing to installed apps in
settings.py:
INSTALLED_APPS += ("weblate.billing",)
Запустіть перенесення бази даних, щоб додатково встановити структури бази даних для модуля:
weblate migrate
Створення та призначення тарифного плану¶
Щоб активувати білінг, спочатку потрібно створити тарифний план. Перейдіть до розділу Адміністрування (представлений іконкою гайкового ключа) і відкрийте екран Інструменти. Звідти перейдіть до інтерфейсу адміністратора Django.
В інтерфейсі адміністратора Django знайдіть розділ BILLING і додайте тарифний план. Наприклад, ви можете додати тарифний план Free без вартості.
Якщо ви хочете призначити план виставлення рахунків для існуючого проекту, це також можна зробити в інтерфейсі адміністратора Django за допомогою опції Виставлення рахунків клієнтам.
Нарешті, в інтерфейсі адміністратора Django передбачена опція Рахунок для реєстрації платежів ваших клієнтів.
Користування¶
Після встановлення ви можете керувати виставленням рахунків в інтерфейсі адміністратора. Користувачі з увімкненим виставленням рахунків отримають нову вкладку Billing у своєму Профіль користувача.
Крім того, модуль обліку надає змогу адміністраторам проєкту створювати проєкти і складники без отримання прав надкористувача (див. Додавання проєктів і складників перекладу). Це можливо при задоволенні таких умов:
Рахунок перебуває у налаштованих межах (будь-яке перевищення обмежень призведе до блокування створення проєктів і складників) із сплачено (якщо тарифний план не є нульовим)
Користувач є адміністратором наявного проєкту із обліком або користувач є власником рахунка (останнє є необхідним при створенні нового рахунку для користувачів, щоб мати змогу імпортувати нові проєкти).
Під час створення проєкту користувач може вибрати, до якого рахунка слід включати проєкт, якщо користувач має доступ до декількох з них.
Юридичний модуль¶
Це використовується на Hosted Weblate для надання обов’язкових юридичних документів. Типово використовуються порожні документи. Ви маєте заповнити такі шаблони у документах:
legal/documents/tos.htmlДокумент щодо умов надання послуг
legal/documents/privacy.htmlДокумент щодо правил конфіденційності
legal/documents/summary.htmlКороткий огляд умов надання послуг та правил конфіденційності
При змін документів щодо умов обслуговування, будь ласка, скоригуйте LEGAL_TOS_DATE, щоб користувачам було запропоновано погодитися із оновленими документами.
Примітка
Юридичні документи щодо сервісу Hosted Weblate, який надає компанія Weblate s.r.o., доступні в цьому репозиторії 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/так, щоб вони відповідали вашій службі.
Підказка
У розгортаннях Docker увімкніть модуль «Legal» за допомогою WEBLATE_LEGAL_INTEGRATION замість редагування файлу settings.py. Використовуйте tos-confirm для увімкнення модуля «Legal» та примусового підтвердження умов надання послуг, або wllegal для додаткового завантаження розміщених шаблонів юридичних документів, які використовуються сервісами, що належать Weblate s.r.o. Ці шаблони не призначені для загального використання. Щоб надати власні шаблони в Docker, розмістіть їх у /app/data/python/customize/templates/legal/documents, див. Заміна логотипа та інших статичних файлів.
Користування¶
Після встановлення і редагування юридичні документи буде показано у інтерфейсі користувача Weblate.
Аватари¶
Аватари завантажуються і кешуються на боці сервера для зменшення витоку відомостей для сайтів, які їх типово обслуговують. Вбудовану підтримку для отримання аватарів з адрес електронної пошти, які для них налаштовано, можна вимкнути за допомогою ENABLE_AVATARS.
У поточній версії Weblate передбачено підтримку таких служб:
Дивись також
CDN локалізації¶
The CDN локалізації JavaScript and Translation files CDN add-ons
write files to LOCALIZE_CDN_PATH; Weblate does not serve them.
Configure the web server or CDN serving LOCALIZE_CDN_URL as a
public, read-only static file host.
Treat every published CDN file as public. The add-on specific UUID in the URL is not an access-control mechanism. Do not enable CDN add-ons for components that contain private strings, unreleased product text, customer data, internal URLs, API examples, repository paths, translator comments, or file-format metadata that should not be exposed.
The Translation files CDN add-on publishes raw translation files in formats supported by Weblate. Some formats can be interpreted by browsers or other clients as HTML, SVG, XML, JavaScript, YAML, or application-specific configuration. Serve the CDN from a dedicated domain that is separate from Weblate and from the application consuming the translations. Do not share authentication cookies with the CDN domain.
Recommended server configuration:
Serve only the directory configured by
LOCALIZE_CDN_PATH; do not expose Weblate repositories, backups, media, configuration, or the whole data directory.Disable directory listing.
Use HTTPS and make the CDN host read-only from the web server.
Send X-Content-Type-Options with
nosniff.Configure conservative MIME types. Serve unknown translation formats as text/plain or application/octet-stream; only serve
weblate.jsas JavaScript.For raw translation formats that are not intended to be rendered in a browser, consider adding Content-Disposition with
attachment.Configure
Access-Control-Allow-Originonly for sites that need browser access to the files.Set cache lifetimes that match your update expectations, and purge CDN caches when stale translations must disappear quickly.
The following nginx snippet serves only the configured CDN directory and applies conservative defaults for raw translation files:
#
# nginx configuration for the Weblate localization CDN
#
# You will want to change:
#
# - server_name to match the host configured in LOCALIZE_CDN_URL
# - root to match LOCALIZE_CDN_PATH
# - Access-Control-Allow-Origin to the sites that need browser access
# - TLS configuration if HTTPS is not terminated before nginx
#
server {
listen 80;
server_name cdn.example.com;
# LOCALIZE_CDN_PATH
root /home/weblate/data/l10n-cdn;
autoindex off;
disable_symlinks on;
location = / {
return 404;
}
# The JavaScript localization add-on publishes this loader.
location ~ "^/[0-9a-f]{32}/weblate\.js$" {
try_files $uri =404;
types {
application/javascript js;
}
default_type application/javascript;
add_header X-Content-Type-Options nosniff always;
# add_header Access-Control-Allow-Origin "https://www.example.com" always;
expires 1h;
}
# Other CDN files are translation files. Serve them conservatively so raw
# formats are not interpreted as active browser content.
location / {
try_files $uri =404;
types {
}
default_type text/plain;
add_header X-Content-Type-Options nosniff always;
add_header Content-Disposition "attachment" always;
# add_header Access-Control-Allow-Origin "https://www.example.com" always;
expires 1h;
}
}
Підписування внесків Git за допомогою GnuPG¶
Усі внески можна підписувати за допомогою ключа GnuPG екземпляра Weblate.
Увімкніть
WEBLATE_GPG_IDENTITY. (Weblate за потреби згенерує ключ GnuPG і використовуватиме його для підпису всіх комітів перекладу.)Для користування цією можливістю слід встановити GnuPG 2.1 або новішу версію.
Ключ зберігається у каталозі
DATA_DIR, а відкритий ключ буде показано на сторінці «Про Weblate»:
Крім того, ви також можете імпортувати існуючі ключі в Weblate, просто встановіть
HOME=$DATA_DIR/homeпід час виклику 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 |
Двофакторна автентифікація |
|
5 |
300 |
600 |
Загальний пошук за сайтом |
|
6 |
60 |
60 |
Переклад |
|
30 |
60 |
600 |
Додавання до глосарія |
|
30 |
60 |
600 |
Започаткування перекладу новою мовою |
|
2 |
300 |
600 |
Створення нового проєкту |
|
5 |
600 |
600 |
Обмеження швидкості базується на сеансах, коли користувач увійшов у систему, і на IP-адресі, якщо ні.
Якщо користувач не зможе увійти до системи AUTH_LOCK_ATTEMPTS разів, на обліковому записі буде вимкнено розпізнавання за паролем, аж доки не буде виконано процедуру скидання пароля облікового запису.
Крім того, параметри може бути застосовано у контейнері Docker додаванням префікса WEBLATE_ до назви параметра. Приклад: RATELIMIT_ATTEMPTS слід замінити на WEBLATE_RATELIMIT_ATTEMPTS.
У програмному інтерфейсі є окремі параметри обмеження частоти, див. Обмеження частоти у програмному інтерфейсі.