<!-- Partly generated using ./manage.py list_addons -->

<a id="addons"></a>

# Додатки

Доповнення надають способи налаштування та автоматизації робочого процесу перекладу. Адміністратори можуть додавати та керувати доповненнями з меню Operations ↓ Add-ons кожного відповідного проєкту перекладу або компонента. Доповнення також можна встановити на весь сайт у [Інтерфейс керування](https://docs.weblate.org/uk/latest/admin/admin.md#management-interface).

#### HINT
Ви також можете налаштувати додатки за допомогою настанов з розділів [API](https://docs.weblate.org/uk/latest/api.md#addons-api), [`DEFAULT_ADDONS`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-DEFAULT_ADDONS) або [`install_addon`](https://docs.weblate.org/uk/latest/admin/management.md#weblate-admin-install_addon).

Додатки, для яких увімкнено ручне запускання, можна запускати через панель керування додатками або за допомогою [API](https://docs.weblate.org/uk/latest/api.md#addons-api). Результати записуються в журнал активності додатка.

Add-ons that expose a component API show its base URL on the add-on’s
API tab, alongside a link to the API root.

Add-ons are persistent administrative configuration. They run with their
service identity in the scope where they are installed, rather than repeatedly
using the permissions of the administrator who configured them. This ensures
that equally authorized administrators see and save the same configuration,
and that saving an unrelated change does not silently alter the add-on’s input
scope. Removing or disabling the configuring administrator does not disable the
add-on.

Project and category add-ons therefore include compatible restricted components
in that scope. A component add-on can use inputs outside its destination
component when documented by that add-on. Automatic translation determines its
source components as follows:

* Direct automatic-translation actions use the acting user’s component access.
* A saved automatic-translation add-on uses its persistent administrative
  scope. Compatible components in the target project are eligible, including
  restricted components.
* Components in another project are eligible when that project contributes to
  shared translation memory. This includes restricted components even though
  they do not create shared translation-memory entries; the add-on reads the
  explicitly selected component as an administrative input instead.

Restricted components remain filtered from ordinary listings and direct access.
Grant add-on management permissions only to users trusted with the add-on’s
complete input and effect scope. See [Область команд](https://docs.weblate.org/uk/latest/admin/access.md#perm-check) and
[Обмежений доступ](https://docs.weblate.org/uk/latest/admin/projects.md#component-restricted).

![image](screenshots/addons.webp)
<!-- AUTOGENERATED START: events -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

## Події, які запускають доповнення

<a id="addon-event-add-on-installation"></a>

### Установка надбудови

Спрацьовує під час встановлення надбудови.

<a id="addon-event-component-update"></a>

### Оновлення компонентів

Спрацьовує щоразу, коли відбувається зміна компонента, наприклад:

* Рядки змінюються в репозиторії.
* Додається рядок.
* Додано новий переклад.

<a id="addon-event-daily"></a>

### Щодня

Запускається щодня, але доповнення зазвичай розподіляють щоденне навантаження між компонентами залежно від [`BACKGROUND_TASKS`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-BACKGROUND_TASKS).

<a id="addon-event-event-change"></a>

### Зміна події

Запускається одразу після створення події зміни.

<a id="addon-event-manual-trigger"></a>

### Ручний спусковий механізм

Запускається, коли додаток запускається вручну з панелі керування додатками або через API.

<a id="addon-event-repository-post-add"></a>

### Репозиторій після додавання

Запускається одразу після додавання та фіксації нового перекладу.

<a id="addon-event-repository-post-commit"></a>

### Репозиторій після фіксації

Запускається відразу після внесення змін.

<a id="addon-event-repository-post-push"></a>

### Репозиторій post-push

Спрацьовує відразу після того, як сховище надсилається вгору.

<a id="addon-event-repository-post-remove"></a>

### Стан сховища після видалення

Спрацьовує одразу після вилучення перекладу.

<a id="addon-event-repository-post-update"></a>

### Постоновлення сховища

Запускається кожного разу, коли нові зміни витягуються з попереднього сховища.

<a id="addon-event-repository-pre-commit"></a>

### Попередня фіксація сховища

Запускається безпосередньо перед фіксацією змін.

<a id="addon-event-repository-pre-push"></a>

### Попереднє натискання репозиторію

Запускається безпосередньо перед тим, як сховище надсилається вгору.

<a id="addon-event-repository-pre-update"></a>

### Попереднє оновлення сховища

Запускається безпосередньо перед спробою оновлення репозиторію.

<a id="addon-event-unit-post-save"></a>

### Блок після збереження

Запускається одразу після збереження рядка.

<a id="addon-event-unit-post-sync"></a>

### Постсинхронізація блоку

Активується після синхронізації рядка з VCS.

<a id="addon-event-unit-pre-create"></a>

### Попереднє створення блоку

Запускається одразу після збереження новоствореного рядка.

<!-- AUTOGENERATED END: events -->
<!-- AUTOGENERATED START: addons-header -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

## Вбудовані додатки

<!-- AUTOGENERATED END: addons-header -->
<!-- AUTOGENERATED START: weblate.ai.quality -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-ai-quality"></a>

### AI quality evaluation

* **Ідентифікатор додатка:**
  `weblate.ai.quality`
* **Налаштування:**
  | `service`   | Evaluation service           | #### Доступні варіанти:<br/><br/>| `anthropic`    | Anthropic    |<br/>|----------------|--------------|<br/>| `openai`       | OpenAI       |<br/>| `mistral`      | Mistral      |<br/>| `ollama`       | Ollama       |<br/>| `azure-openai` | Azure OpenAI |   |
  |-------------|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `q`         | Запит                        |                                                                                                                                                                                                                                                                    |
  | `interval`  | Evaluation frequency         | #### Доступні варіанти:<br/><br/>| `disabled`   | Вимкнено   |<br/>|--------------|------------|<br/>| `daily`      | Щодня      |<br/>| `weekly`     | Щотижня    |<br/>| `monthly`    | Щомісячно  |                                                             |
  | `on_change` | Evaluate translation changes |                                                                                                                                                                                                                                                                    |
  | `on_update` | Evaluate repository updates  |                                                                                                                                                                                                                                                                    |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily), [Зміна події](#addon-event-event-change), [Ручний спусковий механізм](#addon-event-manual-trigger)

Evaluates existing translations using an LLM and records quality checks.

<!-- AUTOGENERATED END: weblate.ai.quality -->

This add-on evaluates existing translations using
an LLM service configured under [Автоматичні пропозиції](https://docs.weblate.org/uk/latest/user/translating.md#machine-translation). It does not generate
suggestions or change translations. Choose an Evaluation service from
the configured LLM services; credentials and project overrides are reused.

The Query selects strings using the normal search syntax. By default,
translated strings are selected. Source strings, read-only strings, and glossary
entries are excluded. Each request includes all translation plural forms, source
text, language information, string context, glossary terms, placeholders, and
configured translation instructions. This data is sent to the selected provider.

Requests group strings from the same translation in file order, using the
service’s automatic translation batch size (currently 20 strings for built-in
LLM services). All plural forms of a string stay together. Related strings share
context, allowing the evaluator to check meaning and terminology across the
batch. Batching reduces the number of provider requests for scheduled, manual,
and change-triggered runs; it does not skip unchanged strings.

Evaluation frequency defaults to weekly. Daily and monthly schedules
are also available; disabled turns off scheduled evaluation. Background processing
must be enabled. A successful full run starts the next interval. Manual runs
bypass the interval. Enable Evaluate translation changes or
Evaluate repository updates to additionally evaluate after those events.
Installation does not immediately contact the provider. Each run can incur provider
costs, including reevaluation of unchanged translations.

Evaluation runs in background tasks, with results and failure counts recorded in
the existing add-on activity log. Failed requests retain existing valid findings
and are tried again only by a subsequent run. Evaluation shares the service’s
automatic translation cooldown: rate-limit responses activate it, and batches
are skipped while it is active. More specific installations take
precedence: component, nearest category, project, then site-wide.

Findings appear as standard checks for accuracy, fluency, terminology, style, and
formatting. Each finding includes a minor, major, or critical severity and an
explanation. Multiple findings in one category share a check, so ignoring that
check ignores the whole category for the string. Existing search filters and API
search work, for example `check:ai_accuracy`. Translation flags such as
`ignore-ai-accuracy` disable a category; `ignore-all-checks` disables all checks.

Changing the source or translation removes outdated findings. Results received
after any source or translation in their batch changes are discarded for the
whole batch. A failed or malformed response also leaves existing findings for
the whole batch unchanged; other batches can still complete. Incomplete runs do
not advance the scheduled evaluation date. Reevaluation of unchanged content
preserves ignored categories, and a successful evaluation removes categories
that no longer have findings. Removing or reconfiguring the add-on clears its
findings. Evaluator metadata is internal and cannot be edited through the API;
the add-on configuration uses the existing [Додатки](https://docs.weblate.org/uk/latest/api.md#addons-api) permissions and
validation.

<!-- AUTOGENERATED START: weblate.automation.automation -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-automation-automation"></a>

### Automation

#### Versionadded
Added in version 2026.10.

* **Ідентифікатор додатка:**
  `weblate.automation.automation`
* **Налаштування:**
  | `workflow`   | Процес   | Enter an automation definition as YAML or JSON.   |
  |--------------|----------|---------------------------------------------------|
* **Перемикачі:**
  [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily), [Зміна події](#addon-event-event-change), [Ручний спусковий механізм](#addon-event-manual-trigger), [Репозиторій після фіксації](#addon-event-repository-post-commit), [Репозиторій post-push](#addon-event-repository-post-push), [Постоновлення сховища](#addon-event-repository-post-update)

Runs ordered translation operations with conditions and branches.

<!-- AUTOGENERATED END: weblate.automation.automation -->

Install this add-on on a component, category, project, or site. Inherited
instances run separately for each component. Multiple instances can be installed.
Configuring, previewing, and running an automation requires the usual add-on
management permission. Saving its configuration does not execute it.

Enter YAML or JSON in Workflow. Use Preview without changes
to validate it and inspect planned actions, then Run now for real
execution. Results appear in the add-on activity log.

#### SEE ALSO
* [Workflow definition](https://docs.weblate.org/uk/latest/admin/automation.md#automation-workflows) for the script definition and reference.
* [Cookbook](https://docs.weblate.org/uk/latest/admin/automation.md#automation-cookbook) for complete examples.
* [Apply translation memory before machine translation](https://docs.weblate.org/uk/latest/admin/automation.md#automation-translation-ordering) for translation memory before machine translation.

<!-- AUTOGENERATED START: weblate.autotranslate.autotranslate -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-autotranslate-autotranslate"></a>

### Автоматичний переклад

* **Ідентифікатор додатка:**
  `weblate.autotranslate.autotranslate`
* **Налаштування:**
  | `mode`        | Режим автоматичного перекладу      | #### Доступні варіанти:<br/><br/>| `suggest`   | Додати як пропозицію                      |<br/>|-------------|-------------------------------------------|<br/>| `translate` | Додати як переклад                        |<br/>| `fuzzy`     | Додати як такі, що потребують редагування |<br/>| `approved`  | Додати як схвалений переклад              |   |
  |---------------|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `q`           | Запит                              | Будь ласка, зауважте, що переклад усіх рядків призведе до відкидання усіх наявних перекладів.                                                                                                                                                                                                                                                                  |
  | `auto_source` | Джерело автоматизованих перекладів | #### Доступні варіанти:<br/><br/>| `others`   | Інші складники перекладу   |<br/>|------------|----------------------------|<br/>| `mt`       | Машинний переклад          |                                                                                                                                                                                   |
  | `component`   | Складник                           | Enter a source component ID. With 30 or more eligible source components, a project/component path is also accepted. In that case, component and project operations also accept a component slug from the target project. Leave blank to use eligible components from each target component’s project.                                                          |
  | `engines`     | Рушії компʼютерного перекладу      | [Рушії компʼютерного перекладу](#addon-choice-engines)                                                                                                                                                                                                                                                                                   |
  | `threshold`   | Поріг оцінки                       |                                                                                                                                                                                                                                                                                                                                                                |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily), [Зміна події](#addon-event-event-change)

Автоматично перекладає рядки за допомогою машинного перекладу або інших складників.

<!-- AUTOGENERATED END: weblate.autotranslate.autotranslate -->

To control translation order, use the [Automation](#addon-weblate-automation-automation)
add-on with a separate action for each pass. Follow the
[Apply translation memory before machine translation](https://docs.weblate.org/uk/latest/admin/automation.md#automation-translation-ordering) cookbook example to apply local translation
memory first and send only the remaining strings to a machine translation service.
Selecting multiple engines here uses [Пріоритет послуг машинного перекладу та пам’яті перекладів](https://docs.weblate.org/uk/latest/admin/machine.md#mt-translation-services-priority);
installation order of separate add-ons does not define an execution sequence.

#### SEE ALSO
* [Автоматичний переклад](https://docs.weblate.org/uk/latest/user/translating.md#auto-translation)
* [Підтримання синхронізації перекладів у різних складниках](https://docs.weblate.org/uk/latest/admin/continuous.md#translation-consistency)
* [Пріоритет послуг машинного перекладу та пам’яті перекладів](https://docs.weblate.org/uk/latest/admin/machine.md#mt-translation-services-priority)
* [Пошук рядків](https://docs.weblate.org/uk/latest/user/search.md#search-strings)

<!-- AUTOGENERATED START: weblate.cdn.cdnjs -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-cdn-cdnjs"></a>

### CDN локалізації JavaScript

#### Versionadded
Added in version 4.2.

* **Ідентифікатор додатка:**
  `weblate.cdn.cdnjs`
* **Налаштування:**
  | `threshold`    | Порогове значення перекладу   | Відсоток перекладених рядків, який має бути присутнім для включення перекладу.                                              |
  |----------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------|
  | `css_selector` | Вибір CSS                     | Засіб вибору CSS для виявлення придатних до локалізації елементів.                                                          |
  | `cookie_name`  | Назва куки мови               | Назва куки, яка зберігатиме налаштування мови.                                                                              |
  | `files`        | Видобути рядки з файлів HTML  | Список назв файлів у поточному сховищі або віддалених адрес, які слід обробити для отримання придатних до перекладу рядків. |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily), [Репозиторій після фіксації](#addon-event-repository-post-commit), [Стан сховища після видалення](#addon-event-repository-post-remove), [Постоновлення сховища](#addon-event-repository-post-update)

Оприлюднює переклади у мережах надання даних для використання у локалізації JavaScript або HTML.

<!-- AUTOGENERATED END: weblate.cdn.cdnjs -->

Можна скористатися для локалізації статичних сторінок HTML або завантаження локалізації у коді JavaScript.

Створює унікальну адресу для вашого складника, яку ви можете включати до сторінок HTML для їхньої локалізації. Див. [Переклад HTML і JavaScript за допомогою CDN Weblate](https://docs.weblate.org/uk/latest/devel/html.md#weblate-cdn), щоб дізнатися більше.

#### NOTE
Для цього додатка потрібні додаткові налаштування на сервері Weblate. [`LOCALIZE_CDN_PATH`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-LOCALIZE_CDN_PATH) налаштовує місце, куди буде записано створені файли (у файловій системі), а [`LOCALIZE_CDN_URL`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-LOCALIZE_CDN_URL) визначає, де їх буде оброблено (адресу). Обслуговування файлів відбувається не на самому Weblate — його слід налаштувати зовні (типово, за допомогою служби CDN).

Цей додаток налаштовано на Hosted Weblate, він обслуговує файли за допомогою `https://weblate-cdn.com/`.

#### SEE ALSO
* [Налаштовування додатка CDN Weblate](https://docs.weblate.org/uk/latest/devel/html.md#cdn-addon-config)
* [Переклад HTML і JavaScript за допомогою CDN Weblate](https://docs.weblate.org/uk/latest/devel/html.md#weblate-cdn)
* [CDN локалізації](https://docs.weblate.org/uk/latest/admin/optionals.md#cdn-server-security)
* [Видобування рядків для CDN Weblate](https://docs.weblate.org/uk/latest/devel/html.md#cdn-addon-extract)
* [Локалізація HTML за допомогою CDN Weblate](https://docs.weblate.org/uk/latest/devel/html.md#cdn-addon-html)

<!-- AUTOGENERATED START: weblate.cdn.files -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-cdn-files"></a>

### CDN файлів перекладу

#### Versionadded
Added in version 2026.5.

* **Ідентифікатор додатка:**
  `weblate.cdn.files`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Репозиторій після фіксації](#addon-event-repository-post-commit), [Стан сховища після видалення](#addon-event-repository-post-remove), [Постоновлення сховища](#addon-event-repository-post-update)

Публікує файли перекладу в мережі доставки контенту.

<!-- AUTOGENERATED END: weblate.cdn.files -->

Publishes translation files without converting them to another format. Files
are written below the add-on specific CDN directory and served from
`LOCALIZE_CDN_URL/<add-on UUID>/`. Single-file translations use the language
code and original file extension, for example `cs.json` or `de.po`.
Multi-file translations are served below the language code using paths relative
to the translation directory. Monolingual components include the source
language file, while bilingual components publish only target-language files.
See [CDN локалізації](https://docs.weblate.org/uk/latest/admin/optionals.md#cdn-server-security) for secure serving guidance.

<!-- AUTOGENERATED START: weblate.cdn.kotlin -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-cdn-kotlin"></a>

### Kotlin SDK CDN

#### Versionadded
Added in version 2026.10.

* **Ідентифікатор додатка:**
  `weblate.cdn.kotlin`
* **Налаштування:**
  | `maximum_age`      | Maximum build age (days)   | Retires builds this many days after their first registration. Re-registering a build does not extend its age.             |
  |--------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------|
  | `maximum_versions` | Maximum retained versions  | Limits retained builds across all package names. A build is retired when either this limit or the maximum age is reached. |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily), [Репозиторій після фіксації](#addon-event-repository-post-commit), [Стан сховища після видалення](#addon-event-repository-post-remove), [Постоновлення сховища](#addon-event-repository-post-update)

Publishes Android string and plural resources for registered Kotlin SDK builds.

<!-- AUTOGENERATED END: weblate.cdn.kotlin -->

#### WARNING
The Kotlin SDK is available as an alpha release. No compatibility is
guaranteed until the final Kotlin SDK is released. Endpoints, build metadata, CDN manifests, and
generated resource formats may change without backward compatibility.

Install Kotlin SDK CDN on an Android string-resource component to
publish translations for builds registered by the Kotlin SDK. Configure
[`LOCALIZE_CDN_URL`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-LOCALIZE_CDN_URL) and [`LOCALIZE_CDN_PATH`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-LOCALIZE_CDN_PATH) first. CDN output is
public, including translations from private components. Manifests expose the
application package name and version code. ARSC files expose published resource
names and their submitted IDs alongside translated text. Do not treat the
uploaded resource mapping as confidential; enable publication only when this
disclosure is intended. Registration and status API access remains permission-controlled.

Copy the Gradle plugin configuration from the add-on configuration page. It
includes the Weblate server URL, public CDN URL, project slug, and component
path (with any category path URL-encoded). Replace the placeholder with a
project-scoped API token whose permissions allow editing the component. Project
administrators can create one in the project’s API access tab; see
[Маркери доступу для кожного проекту](https://docs.weblate.org/uk/latest/admin/access.md#project-api).
Keep that token in the build environment, not in the application. The add-on’s
API tab shows the API base URL; submit build metadata to its `builds/`
endpoint. See
[Kotlin SDK builds](https://docs.weblate.org/uk/latest/api.md#kotlin-sdk-build-api) for the request and response format.

For Gradle plugin and library setup, see [Kotlin SDK for Android](https://docs.weblate.org/uk/latest/devel/kotlin-sdk.md).

The add-on matches resource names and types from registered builds to current
component translations. Strings, plurals, and Android styled text are supported.
String arrays and resource references are not generated. Untranslated entries,
read-only entries, and incomplete plural resources are omitted; applications
retain their bundled values. Unsupported styling fails publication; the previous
successful publication remains available.

Resource IDs must describe the final installed build. Uploading an identical
mapping again is harmless; a different mapping for the same package and version
is rejected. Old builds receive current translations by name, including after
source text or formatting arguments change. Maintainers are responsible for
compatibility with older application code.

#### Lifecycle settings

* Maximum build age (days) defaults to 365 and accepts 1 through 730,
  measured from the first registration. Repeated uploads do not extend it.
* Maximum retained versions defaults to 20 and accepts 1 through 100,
  counted across all package names. One additional unpublished replacement is
  allowed. New registrations can retire older unpublished replacements. Published
  builds are retired for this limit only after a replacement is published.
  Failed replacements preserve existing publications; maximum-age expiry still
  applies independently.

Either limit retires a build and immediately clears its metadata. Lightweight
retired records are deleted on cleanup after 24 hours and successful manifest
removal; their package/version identifiers can then be registered again.
Failed or interrupted manifest removals are retried hourly. Until removal
succeeds, the registration and its referenced artifacts are retained, and the
files may remain publicly accessible. Resource mappings are immutable only while
their registration records remain.

Each add-on permits at most 1000 registration records, including retired records.
New registrations exceeding this limit return HTTP 409 until cleanup frees
capacity; identical retries remain accepted. Metadata is bounded by the 5 MiB
upload limit and maximum retained version count plus one replacement, without a
separate byte quota.
Limits are enforced during registration and scheduled cleanup.

Superseded artifacts are deleted on cleanup after a fixed 24-hour window. All
artifact files, including superseded files and incomplete publication output,
count towards hard limits of 5 GiB and 10000 files per add-on. The larger artifact
allowance accommodates translated text and multiple locales; it does not
guarantee capacity for every locale or build combination. Shared artifacts
count only once. Publications exceeding either limit fail before writing new
artifacts and preserve the previous manifest. Neither the window nor these
limits are configurable. Limit manifest caching as described below.

Compilation stages one locale at a time on disk. A per-locale conservative
encoded text and styling estimate exceeding 64 MiB fails publication.

Preparation additionally requires up to 5 GiB of temporary disk space per
publication job, separate from the published artifact allowance. Temporary
files contain staged ARSC output, shared by versions with identical resource mappings.
They are stored below [`LOCALIZE_CDN_PATH`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-LOCALIZE_CDN_PATH). Configure the server to
deny access to `.kotlin-sdk-staging` as described in
[CDN локалізації](https://docs.weblate.org/uk/latest/admin/optionals.md#cdn-server-security) before enabling this add-on.

Manifest replacement follows the database commit. Failed or interrupted writes
are retried by subsequent publication jobs, with artifacts for both the old and
pending manifest protected until replacement succeeds.

Uninstalling the add-on attempts to remove its published files from the CDN origin
immediately. Failed or interrupted removals are retried hourly; files may remain
publicly accessible until cleanup succeeds. Removal does not revoke copies already
cached or downloaded by clients.

Publication and cleanup run asynchronously after build registration, component
updates, translation commits and removals, and during daily add-on processing.
Failures appear in the add-on activity log and registration status. Previous
successful publications remain available when replacement generation fails.
If the component stops using the Android resource format, hourly maintenance
retires its publications. The normal artifact retention window still applies.

#### CDN client contract

Each build has a stable manifest at
`<CDN base>/<packageName>/<versionCode>/manifest.json`. The version 1 manifest
contains `schemaVersion`, `packageName`, `versionCode`, and `locales`.
Locale keys are Weblate language codes. Each locale contains a relative `url`,
`sha256`, and byte `size` for its ARSC artifact. Resolve relative URLs against
the manifest URL. Artifact contents do not change after publication.
The manifest has a [`JSON Schema`](https://docs.weblate.org/uk/latest/admin/_downloads/3f1cd8a80d26f6e0da13555125072237/weblate-kotlin-sdk-manifest.schema.json).

Configure the CDN origin to cache manifests for at most one hour (for example,
`Cache-Control: public, max-age=3600`), and artifact files with
`Cache-Control: public, max-age=31536000, immutable`. Artifact files may use
`application/octet-stream`. Configure these headers on the CDN server.
Translation updates and retirements can take up to one hour to reach clients.
Use `Cache-Control: no-cache` when immediate revalidation is preferred.
The fixed 24-hour artifact retention window exceeds the manifest cache lifetime.

The Kotlin SDK should validate artifact length and hash, cache successful
downloads locally, and load them with Android’s resources-loader API on API 30
or newer. A missing manifest, missing locale, or download failure must preserve
bundled resources. Retired manifests return 404 at the origin; cached copies can
remain usable until they expire. Hashes detect corrupted or
mismatched content; authentication relies on HTTPS and the configured CDN.

<!-- AUTOGENERATED START: weblate.cleanup.blank -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-cleanup-blank"></a>

### Вилучити порожні рядки

#### Versionadded
Added in version 4.4.

* **Ідентифікатор додатка:**
  `weblate.cleanup.blank`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Репозиторій після фіксації](#addon-event-repository-post-commit), [Постоновлення сховища](#addon-event-repository-post-update)

Вилучає рядки без перекладу з файлів перекладу.

<!-- AUTOGENERATED END: weblate.cleanup.blank -->

Використовуйте це, якщо не хочете, щоб порожні рядки з’являлись у файлах перекладу (наприклад, коли у бібліотеці локалізації їх показано як пропущені рядки, а не повернено до початкового рядка).

#### SEE ALSO
[Чи оновлює Weblate файли перекладів між перекладами?](https://docs.weblate.org/uk/latest/faq.md#faq-cleanup)

<!-- AUTOGENERATED START: weblate.cleanup.generic -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-cleanup-generic"></a>

### Очищення файлів перекладу

* **Ідентифікатор додатка:**
  `weblate.cleanup.generic`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Постоновлення сховища](#addon-event-repository-post-update), [Попередня фіксація сховища](#addon-event-repository-pre-commit)

Оновіть всі файли перекладу, щоб вони відповідали одномовному основному файлу. Для більшості форматів файлів це означає видалення застарілих перекладацьких ключів, які вже відсутні у основному файлі.

<!-- AUTOGENERATED END: weblate.cleanup.generic -->

Для форматів, що містять додаткові дані, окрім рядків перекладу (зокрема [Файли HTML](https://docs.weblate.org/uk/latest/formats/html.md#html), [Файли RC Windows](https://docs.weblate.org/uk/latest/formats/winrc.md#winrc) та [Формат OpenDocument](https://docs.weblate.org/uk/latest/formats/odf.md#odf)), також синхронізує файл перекладу із базовим файлом.

For a one-time cleanup of a single translation file, use
Cleanup unused in [Супровід репозиторія](https://docs.weblate.org/uk/latest/admin/continuous.md#repository-maintenance) on that translation
instead of installing the add-on.

#### SEE ALSO
[Чи оновлює Weblate файли перекладів між перекладами?](https://docs.weblate.org/uk/latest/faq.md#faq-cleanup)

<!-- AUTOGENERATED START: weblate.consistency.languages -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-consistency-languages"></a>

### Додавання нових мов

* **Ідентифікатор додатка:**
  `weblate.consistency.languages`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily), [Репозиторій після додавання](#addon-event-repository-post-add)

Забезпечує використання однорідного набору мов для всіх складників проєкту.

<!-- AUTOGENERATED END: weblate.consistency.languages -->

#### NOTE
Компоненти, спільно використані з інших проектів, тут не враховуються.

Пошук пропущених мов відбувається кожні 24 години і при додаванні нових мов у Weblate.

На відміну від інших, цей додаток стосується усього проєкту.

#### HINT
Автоматичний переклад нових доданих рядків за допомогою [Автоматичний переклад](#addon-weblate-autotranslate-autotranslate).

<!-- AUTOGENERATED START: weblate.discovery.discovery -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-discovery-discovery"></a>

### Виявлення складників

* **Ідентифікатор додатка:**
  `weblate.discovery.discovery`
* **Налаштування:**
  | `match`                 | Регулярний вираз для зіставлення файлів перекладу         | The regular expression must define a named group for component. Also define a named group for language when matching translation files. When the file mask is set, omit language and match the monolingual base or new base file instead.                                           |
  |-------------------------|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `file_format`           | Формат файлу                                              | [Формат файлу](#addon-choice-file-format)                                                                                                                                                                                                                         |
  | `name_template`         | Налаштувати назву складника                               | Використовуйте синтаксис шаблонів Django. Цей шаблон повинен містити {{ component }}.                                                                                                                                                                                               |
  | `base_file_template`    | Визначити назву основного файлу для одномовного перекладу | Залиште порожнім для двомовних файлів перекладу. Якщо цей параметр встановлено, цей шаблон повинен містити {{ component }}.                                                                                                                                                         |
  | `new_base_template`     | Визначити основний файл для нового перекладу              | Ім’я файлу, що використовується для створення нових перекладів. Для gettext слід вибрати файл .pot. Цей шаблон повинен містити {{ component }}.                                                                                                                                     |
  | `intermediate_template` | Проміжний мовний файл                                     | Ім’я проміжного файлу перекладу. У більшості випадків це файл перекладу, наданий розробниками, який використовується під час створення власне вихідних рядків. Цей шаблон повинен містити {{ component }}.                                                                          |
  | `filemask_template`     | Define the file mask                                      | Leave empty to match translation files directly. When set, discovery matches the monolingual base or new base file and uses this template as the file mask. Include a language wildcard and {{ component }}, for example locale/ */{{ component }}.po or docs/{{ component }}_*.md. |
  | `language_regex`        | Фільтр мов                                                | Формальний вираз для фільтрування файлів перекладу під час сканування за маскою файлів.                                                                                                                                                                                             |
  | `copy_addons`           | Клонувати додатки з основного складника до нових          |                                                                                                                                                                                                                                                                                     |
  | `remove`                | Видалити складники для файлів, яких не існує              |                                                                                                                                                                                                                                                                                     |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Постоновлення сховища](#addon-event-repository-post-update)

Автоматично додає або вилучає складники до проєкту на основі змін файла у системі керування версіями.

<!-- AUTOGENERATED END: weblate.discovery.discovery -->

The matching is done using regular expressions
enabling complex configuration, but some knowledge is required to do so.
Usually the regular expression to match translation files has to contain two named
groups to match component and language. When creating components from a monolingual
base or new base file, omit the language group and match that source file instead.
All named groups in the regular expression can be used as variables in the template
fields.

#### Вимоги щодо розкриття інформації

Щоб успішно виявити компонент, конфігурація повинна виконати всі наведені нижче дії:

* The regular expression must define a `component` named group. Matching
  translation files also requires a `language` named group.
* Поля шаблону, що використовуються для іменування або визначення розташування файлів окремих компонентів, повинні містити `{{ component }}`, щоб відображуване значення фактично змінювалося для кожного виявленого компонента.
* For monolingual formats, the component must contain a file matching
  `base_file_template` and at least one translation file matching `match`,
  unless you set the file mask (see below).

#### Discovering components without translation files

Set Define the file mask to discover components from a
monolingual base or new base file alone, even when no translation files exist yet.
In that mode:

* Configure Regular expression to match translation files against to
  match the monolingual base or new base file, and omit the `language` group.
  Keep full control over the `component` capture, for example
  `locale/(?P<component>[^/]+)\.pot` or `docs/(?P<component>[^/_]+)\.md`.
* Fill Define the file mask with a path that includes both a
  language wildcard and `{{ component }}`, for example
  `locale/*/{{ component }}.po` or `docs/{{ component }}_*.md`.
* Keep using the other filename templates with any named groups from the match
  expression.

#### Приклад із розв’язанням: `news_<lang>.md`

Це типовий макет варіантів мови на основі імен файлів:

* `docs/news_en.md`
* `docs/news_cs.md`
* `docs/guide_en.md`

Скористайтеся попередньою настройкою Варіанти мови за іменем файлу як відправною точкою, потім виберіть відповідний формат файлу та перегляньте заповнені значення.

Формальний вираз:
: `(?:(?P<path>.*/))?(?P<component>.+?)_(?P<language>[A-Za-z]{2,3}(?:[_-][A-Za-z0-9]+)*)\.(?P<extension>[^/.]+)`

Назва складника:
: `{{ component }}`

Виявлені маски файлів:
: - `docs/news_*.md`
  - `docs/guide_*.md`

У цьому прикладі `{{ component }}»'` розшифровується як базова назва без суфікса мови, тому файли `docs/news_en.md`, `docs/news_pt_BR.md` та `docs/news_pt-BR.md` стають компонентом `news`.

Ви можете використовувати розмітку шаблонів Django в усіх полях назви файла. Приклад:

`{{ component }}`
: Назва компонента, вилучена з групи збігів `component`

`{{ component|title }}`
: Назва файла складника з великою першою буквою

`{{ path }}: {{ component }}`
: Нетипова група відповідності на основі формального виразу

Після натискання кнопки Зберегти буде показано попередній перегляд відповідних складників, за допомогою якого ви зможете перевірити, чи відповідають налаштування вашим потребам:

![image](screenshots/addon-discovery.webp)

#### Приклади виявленння складників

Наведений вище приклад ілюструє найпоширеніший варіант структури, заснований на іменах файлів. У наступних прикладах показано інші структури репозиторіїв, які ви можете зіставити.

##### Одна тека на мову

Одна тека для мови, що містить файли перекладів для складників.

Формальний вираз:
: `(?P<language>[^/.]*)/(?P<component>[^/]*)\.po`

Відповідні файли:
: - `cs/application.po`
  - `cs/website.po`
  - `de/application.po`
  - `de/website.po`

##### Компонування локалей Gettext

Звичайна структура для збереження файлів gettex PO.

Формальний вираз:
: `locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po`

Відповідні файли:
: - `locale/cs/LC_MESSAGES/application.po`
  - `locale/cs/LC_MESSAGES/website.po`
  - `locale/de/LC_MESSAGES/application.po`
  - `locale/de/LC_MESSAGES/website.po`

##### Складні назви файлів

Використання складників та назви мови в імені файлу.

Формальний вираз:
: `src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po`

Відповідні файли:
: - `src/locale/application.cs.po`
  - `src/locale/website.cs.po`
  - `src/locale/application.de.po`
  - `src/locale/website.de.po`

##### Повторюваний код мови

Використанні мови у шляху та назві файлу.

Формальний вираз:
: `locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po`

Відповідні файли:
: - `locale/cs/application/cs.po`
  - `locale/cs/website/cs.po`
  - `locale/de/application/de.po`
  - `locale/de/website/de.po`

##### Розділені рядки Android

Рядки ресурсів Android, розбиті на декілька файлів.

Формальний вираз:
: `res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml`

Відповідні файли:
: - `res/values-cs/strings-about.xml`
  - `res/values-cs/strings-help.xml`
  - `res/values-de/strings-about.xml`
  - `res/values-de/strings-help.xml`

##### Відповідність декільком шляхам

Багатомодульний проєкт Maven зі перекладами властивостей Java.

Формальний вираз:
: `(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties`

Назва складника:
: `{{ originalHierarchy }}: {{ component }}`

Відповідні файли:
: - `parent/module1/submodule/src/main/resources/ApplicationResources_fr.properties`
  - `parent/module1/submodule/src/main/resources/ApplicationResource_es.properties`
  - `parent/module2/src/main/resources/ApplicationResource_de.properties`
  - `parent/module2/src/main/resources/ApplicationResource_ro.properties`

#### HINT
Додаток для виявлення компонентів використовує [Внутрішні адреси Weblate](https://docs.weblate.org/uk/latest/vcs.md#internal-urls). Це зручний спосіб спільного використання налаштувань VCS між кількома компонентами. Пов’язані компоненти використовують локальний репозиторій основного компонента, налаштованого шляхом заповнення `weblate://project/main-component` у полі [Сховище з джерелами](https://docs.weblate.org/uk/latest/admin/projects.md#component-repo) (у Operations ↓ Settings ↓ Version control system) кожного відповідного компонента. Це також економить час на налаштування та системні ресурси.

#### HINT
Переконайтеся, що новий компонент містить повний набір мов, які можна перекладати, за допомогою [Додавання нових мов](#addon-weblate-consistency-languages).

#### SEE ALSO
* [Розмітка шаблонів](https://docs.weblate.org/uk/latest/admin/projects.md#markup)
* [`import_project`](https://docs.weblate.org/uk/latest/admin/management.md#weblate-admin-import_project)

<!-- AUTOGENERATED START: weblate.fedora_messaging.publish -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="fedora-messaging"></a>

<a id="addon-weblate-fedora-messaging-publish"></a>

### Повідомлення Fedora

#### Versionadded
Added in version 5.15.

* **Ідентифікатор додатка:**
  `weblate.fedora_messaging.publish`
* **Налаштування:**
  | `amqp_url`            | Адреса обробника AMQP                       | Адреса обробника AMQP для встановлення з’єднання.                                                                                  |
  |-----------------------|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
  | `topic_prefix`        | Префікс теми                                | Необов’язковий префікс для дописування перед створеними записами тем повідомлень.                                                  |
  | `publish_timeout`     | Перевищення часу очікування на оприлюднення | Кількість секунд очікування на сповіщення щодо доставлення від обробника.                                                          |
  | `connection_attempts` | Спроби з’єднання                            | Кількість спроб встановити з’єднання з обробником.                                                                                 |
  | `retry_delay`         | Затримка повторних спроб                    | Кількість секунд очікування між спробами встановлення з’єднання.                                                                   |
  | `ca_cert`             | Комплект сертифіката CA (PEM)               | Вставити лише блоки сертифіката PEM, кожен починатиметься з «—–BEGIN CERTIFICATE—–» і завершуватиметься «—–END CERTIFICATE—–».     |
  | `client_key`          | Клієнтський закритий ключ (PEM)             | Вставити єдиний нешифрований блок закритого ключа PEM. Підтримки шифрованих закритих ключів не передбачено.                        |
  | `client_cert`         | Клієнтський сертифікат (PEM)                | Вставити лише блок сертифіката PEM, що починається з «—–BEGIN CERTIFICATE—–»; не вставляти дані, виведені «openssl x509 -text».    |
  | `event_filter`        | Події зміни для вмикання                    | Choose which change events should trigger this add-on.<br/>[Події зміни для вмикання](#addon-choice-event-filter) |
  | `events`              | Вибрані події зміни                         | [Вибрані події зміни](#addon-choice-events)                                                                 |
* **Перемикачі:**
  [Зміна події](#addon-event-event-change)

Надсилає сповіщення на обмін AMQP, сумісний з Fedora Messaging.

<!-- AUTOGENERATED END: weblate.fedora_messaging.publish -->

Fedora Messaging — заснований на AMQP засіб публікації усіх змін, які відбуваються у Weblate. За її допомогою ви можете будувати додаткові служби на основі змін, які відбуваються у Weblate.

#### Тема повідомлення

All messages have topic
`weblate.<action>.<project>.<category...>.<component>.<translation>`.
When configured, `topic_prefix` is prepended to this topic using a single dot
separator, for example `org.fedoraproject.weblate.project_backed_up.website`.
The action is lowercase textual representation of action with underscores
instead of space, for example `resource_updated`; see [Вибрані події зміни](#change-actions)
for all action identifiers. The remaining parts match Weblate object path
segments.

For example, a project backup event for the `website` project uses
`weblate.project_backed_up.website`. A translation change in the `website`
project, `frontend` component, and Czech translation uses
`weblate.translation_changed.website.frontend.cs`. The same change in the
`frontend` component inside the `parent` and `child` categories uses
`weblate.translation_changed.website.parent.child.frontend.cs`.

#### Текст повідомлення

Тіло складається з наступних полів (за умови, що вони доступні для події):

`change_id`
: Числовий ідентифікатор зміни

`action`
: Детальна назва зміни.

`timestamp`
: Часова позначка у форматі ISO

`target`
: Нове значення зміни (тобто новий переклад рядка)

`old`
: Старе значення зміни (тобто попередній переклад рядка)

`source`
: Вихідний рядок.

`url`
: Абсолютна адреса для перегляду пов’язаного об’єкта.

`author`
: Ім’я користувача автора (може відрізнятися від користувача, наприклад, при затвердженні пропозицій)

`user`
: Ім’я користувача, яким внесено зміну

`project`
: Ідентифікатор проєкту

`component`
: Ідентифікатор складника

`translation`
: Код мови перекладу

#### Заголовки повідомлень

Існують додаткові заголовки, які ви також можете використовувати для маршрутизації:

`action`
: Детальна назва зміни.

`project`
: Ідентифікатор проєкту

`component`
: Ідентифікатор складника

#### Приклади повідомлень

Подія злиття репозиторію:

```json
{
  "id": 1,
  "action": "Merged repository",
  "timestamp": "2017-06-15T11:30:47.325000+00:00",
  "url": "http://example.com/projects/test/test/",
  "component": "test"
}
```

Нова подія вихідного рядка:

```json
{
  "id": 2,
  "action": "New source string",
  "timestamp": "2017-06-15T11:30:47.372000+00:00",
  "url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
  "component": "test",
  "translation": "cs",
  "source": ["Hello, world!\n"]
}
```

Подія оновлення ресурсу:

```json
{
  "id": 6,
  "action": "Resource update",
  "timestamp": "2017-06-15T11:30:47.410000+00:00",
  "url": "http://example.com/projects/test/test/cs/",
  "project": "test",
  "component": "test",
  "translation": "cs"
}
{
  "id": 7,
  "action": "Resource update",
  "timestamp": "2017-06-15T11:30:47.510000+00:00",
  "url": "http://example.com/projects/test/test/de/",
  "project": "test",
  "component": "test",
  "translation": "de"
}
{
  "id": 8,
  "action": "Resource update",
  "timestamp": "2017-06-15T11:30:47.595000+00:00",
  "url": "http://example.com/projects/test/test/it/",
  "project": "test",
  "component": "test",
  "translation": "it"
}
```

Подія вилучення проекту:

```json
{
  "id": 9,
  "action": "Removed project",
  "timestamp": "2019-10-17T15:57:08.559420+00:00",
  "target": "test",
  "user": "testuser"
}
```

Подія для нових учасників:

```json
{
  "id": 11,
  "action": "New contributor",
  "timestamp": "2019-10-17T15:57:08.759960+00:00",
  "url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
  "author": "testuser",
  "user": "testuser",
  "project": "test",
  "component": "test",
  "translation": "cs",
  "source": ["Hello, world!\n"]
}
```

Нова подія перекладу:

```json
{
  "id": 12,
  "action": "New translation",
  "timestamp": "2019-10-17T15:57:08.772591+00:00",
  "url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
  "target": ["Ahoj svete!\n"],
  "author": "testuser",
  "user": "testuser",
  "project": "test",
  "component": "test",
  "translation": "cs",
  "source": ["Hello, world!\n"]
}
```

#### SEE ALSO
* [Налаштування системи обміну повідомленнями Fedora](https://fedora-messaging.readthedocs.io/en/stable/user-guide/configuration.html)
* [Weblate Messaging](https://docs.weblate.org/uk/latest/contributing/schemas.md#schema-messaging)

<!-- AUTOGENERATED START: weblate.flags.bulk -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-flags-bulk"></a>

### Масове редагування

* **Ідентифікатор додатка:**
  `weblate.flags.bulk`
* **Налаштування:**
  | `q`                        | Запит                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  |----------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `state`                    | Стан для встановлення                               | #### Доступні варіанти:<br/><br/>| `-1`   | Не змінювати                                |<br/>|--------|---------------------------------------------|<br/>| `10`   | Потребує редагування                        |<br/>| `11`   | Потребує редагування (Потребує переписання) |<br/>| `12`   | Потребує редагування (Потребує перевірки)   |<br/>| `20`   | Перекладено                                 |<br/>| `30`   | Схвалено                                    | |
  | `add_flags`                | Source flags to add — all languages                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | `remove_flags`             | Source flags to remove — all languages              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | `add_translation_flags`    | Translation flags to add — matching translations    | Applies only to matching translations, excluding source strings.                                                                                                                                                                                                                                                                                                                                                                                                        |
  | `remove_translation_flags` | Translation flags to remove — matching translations | Removes locally set flags. Inherited flags remain in effect.                                                                                                                                                                                                                                                                                                                                                                                                            |
  | `add_labels`               | Labels to add — all languages                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | `remove_labels`            | Labels to remove — all languages                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update)

Надає можливість пакетного редагування прапорців, міток або стану рядків.

<!-- AUTOGENERATED END: weblate.flags.bulk -->

**Приклади:**

#### Автоматичне встановлення міток нових рядків

| Запит щодо пошуку   | `NOT has:label`   |
|---------------------|-------------------|
| Мітки для додавання | *recent*          |

#### Позначення всіх рядків журналу змін [Файли метаданих крамниці програм](https://docs.weblate.org/uk/latest/formats/appstore.md#appstore) придатними лише для читання

| Запит щодо пошуку                  | `language:en AND key:changelogs/`   |
|------------------------------------|-------------------------------------|
| Додати наступні прапорці перекладу | `read-only`                         |

#### Позначення певних рядків придатними лише для читання

| Запит щодо пошуку                  | `source:r"^\`\`[.a-zA-Z0-9_-]*\`\`$" AND language:en`   |
|------------------------------------|---------------------------------------------------------|
| Додати наступні прапорці перекладу | `read-only`                                             |

#### SEE ALSO
* [Масове редагування](https://docs.weblate.org/uk/latest/user/translating.md#bulk-edit)
* [Налаштовування поведінки за допомогою прапорців](https://docs.weblate.org/uk/latest/admin/checks.md#custom-checks)
* [Мітки рядків](https://docs.weblate.org/uk/latest/devel/translations.md#labels)

<!-- AUTOGENERATED START: weblate.flags.same_edit -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-flags-same-edit"></a>

### Позначити незмінені переклади як «Потребує переробки»

* **Ідентифікатор додатка:**
  `weblate.flags.same_edit`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Попереднє створення блоку](#addon-event-unit-pre-create)

Кожного разу, коли з VCS імпортується новий рядок, що підлягає перекладу, і він збігається з вихідним рядком, він позначається як такий, що потребує переписання у Weblate. Це особливо корисно для форматів файлів, що містять вихідні рядки для неперекладених рядків.

<!-- AUTOGENERATED END: weblate.flags.same_edit -->

#### HINT
Можливо, ви також захочете зробити строгішою перевірку [Переклад не змінено](https://docs.weblate.org/uk/latest/user/checks.md#check-same), додавши до [Прапорці перекладу](https://docs.weblate.org/uk/latest/admin/projects.md#component-check-flags) прапорець `strict-same`.

#### SEE ALSO
[Стани перекладу](https://docs.weblate.org/uk/latest/workflows.md#states)

<!-- AUTOGENERATED START: weblate.flags.source_edit -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-flags-source-edit"></a>

### Позначте нові рядки джерела як «Потребує перевірки»

* **Ідентифікатор додатка:**
  `weblate.flags.source_edit`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Попереднє створення блоку](#addon-event-unit-pre-create)

Кожного разу, коли з VCS імпортується новий вихідний рядок, він позначається як такий, що потребує перевірки у Weblate. Таким чином ви можете легко фільтрувати та редагувати вихідні рядки, написані розробниками.

<!-- AUTOGENERATED END: weblate.flags.source_edit -->

#### SEE ALSO
[Стани перекладу](https://docs.weblate.org/uk/latest/workflows.md#states)

<!-- AUTOGENERATED START: weblate.flags.target_edit -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-flags-target-edit"></a>

### Позначити нові переклади як «Потребує переробки»

* **Ідентифікатор додатка:**
  `weblate.flags.target_edit`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Попереднє створення блоку](#addon-event-unit-pre-create)

Кожен раз, коли з VCS імпортується новий рядок, що підлягає перекладу, він позначається як такий, що потребує переписання у Weblate. Таким чином ви можете легко фільтрувати та редагувати переклади, створені розробниками.

<!-- AUTOGENERATED END: weblate.flags.target_edit -->

#### SEE ALSO
[Стани перекладу](https://docs.weblate.org/uk/latest/workflows.md#states)

<!-- AUTOGENERATED START: weblate.flags.target_repo_update -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-flags-target-repo-update"></a>

### Позначити оновлені переклади з репозиторія як «Потребує переписування»

* **Ідентифікатор додатка:**
  `weblate.flags.target_repo_update`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Постсинхронізація блоку](#addon-event-unit-post-sync)

Кожного разу, коли переклад рядка змінюється у VCS, він позначається як такий, що потребує переписання у Weblate. Це особливо корисно, якщо файли перекладу часто оновлюються вручну або за допомогою зовнішньої служби.

<!-- AUTOGENERATED END: weblate.flags.target_repo_update -->

#### SEE ALSO
[Стани перекладу](https://docs.weblate.org/uk/latest/workflows.md#states)

<!-- AUTOGENERATED START: weblate.generate.fill_read_only -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-generate-fill-read-only"></a>

### Заповнити придатні лише для читання рядки початковими рядками

#### Versionadded
Added in version 4.18.

* **Ідентифікатор додатка:**
  `weblate.generate.fill_read_only`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily)

Заповнює рядки перекладу, які призначено лише для читання, початковими рядками.

<!-- AUTOGENERATED END: weblate.generate.fill_read_only -->
<!-- AUTOGENERATED START: weblate.generate.generate -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-generate-generate"></a>

### Генератор статистики

* **Ідентифікатор додатка:**
  `weblate.generate.generate`
* **Налаштування:**
  | `scope`    | Output scope           | #### Доступні варіанти:<br/><br/>| `translation`   | One file per translation   |<br/>|-----------------|----------------------------|<br/>| `component`     | One file per component     |   |
  |------------|------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `filename` | Назва створеного файла |                                                                                                                                                                                               |
  | `template` | Вміст створеного файлу |                                                                                                                                                                                               |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Репозиторій після додавання](#addon-event-repository-post-add), [Стан сховища після видалення](#addon-event-repository-post-remove), [Попередня фіксація сховища](#addon-event-repository-pre-commit)

Створює файл з докладними відомостями щодо стану перекладу.

<!-- AUTOGENERATED END: weblate.generate.generate -->

Ви можете скористатися шаблоном Django одразу для назви файла і вмісту. Докладний опис розмітки можна знайти у розділі [Розмітка шаблонів](https://docs.weblate.org/uk/latest/admin/projects.md#markup).

Наприклад, створення файла резюме для кожного перекладу:

Назва створеного файла
: `locale/{{ language_code }}.json`

Вміст
: ```json
  {
     "language": "{{ language_code }}",
     "strings": "{{ stats.all }}",
     "translated": "{{ stats.translated }}",
     "last_changed": "{{ stats.last_changed }}",
     "last_author": "{{ stats.last_author }}",
  }
  ```

#### Component-wide output

Set Output scope to One file per component to maintain
one locale list or statistics file for the entire component. The default,
One file per translation, preserves existing configurations.

Component output is generated on installation and configuration changes. It is
updated when translations are committed, languages are added or removed, and
component files are reloaded. Language metadata changes are included on the
next such update or when the add-on is reconfigured. Unchanged output does not
create a new commit.

Both modes support component and project variables in filenames and content.
In component mode, the content additionally receives `translations`, ordered
by repository language code. Each item provides:

* `language_code`: the language code used in the repository.
* `language_name`: the English language name.
* `language_native_name`: the name translated into its own language using
  Weblate’s catalogs, with an English fallback when unavailable.
* `language_direction`: `ltr` or `rtl`.
* `filename` and `url`: the translation filename and Weblate URL.
* `is_source`: whether this is the component’s source translation.
* `stats`: the same statistics available in translation mode.

The source translation is included. Templates can exclude it using
`{% if not item.is_source %}`. Statistics use Weblate’s completion semantics.
Custom language names are retained; there is no external locale-data lookup.

For example, generate `locales.json` for a website:

```django
[
{% for item in translations %}
  {
    "code": {{ item.language_code|json }},
    "file": {{ item.filename|json }},
    "name": {{ item.language_native_name|json }},
    "dir": {{ item.language_direction|json }}
  }{% if not forloop.last %},{% endif %}
{% endfor %}
]
```

Or generate `languages.py` for an application:

```django
names = {
{% for item in translations %}
    {{ item.language_code|python }}: {{ item.language_native_name|python }},
{% endfor %}
}
completeness = {
{% for item in translations %}
    {{ item.language_code|python }}: {{ item.stats.translated_percent|python }},
{% endfor %}
}
```

The `json` and `python` filters serialize complete values, including string
quotes and escaping. Do not add quotes around their output. They also support
lists and dictionaries; `{{ translations|json }}` exports all available data.
Dates and times are serialized as ISO-formatted strings.

#### SEE ALSO
[Розмітка шаблонів](https://docs.weblate.org/uk/latest/admin/projects.md#markup)

<!-- AUTOGENERATED START: weblate.generate.prefill -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-generate-prefill"></a>

### Заповнити переклади початковими рядками

#### Versionadded
Added in version 4.11.

* **Ідентифікатор додатка:**
  `weblate.generate.prefill`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily)

Заповнює рядки перекладу початковими рядками.

<!-- AUTOGENERATED END: weblate.generate.prefill -->

Усі неперекладені рядки в компоненті будуть замінені вихідним рядком і позначені як такі, що потребують редагування. Використовуйте цю опцію, якщо у файлах перекладу не можна залишати порожні рядки. .. АВТОМАТИЧНО СТВОРЕНИЙ ПОЧАТОК: weblate.generate.pseudolocale .. Цей розділ автоматично генерується командою ./manage.py list_addons. Не редагуйте його вручну.

<a id="addon-weblate-generate-pseudolocale"></a>

### Створення псевдолокалей

#### Versionadded
Added in version 4.5.

* **Ідентифікатор додатка:**
  `weblate.generate.pseudolocale`
* **Налаштування:**
  | `source`           | Початкові рядки                 |                                                                              |
  |--------------------|---------------------------------|------------------------------------------------------------------------------|
  | `target`           | Цільовий переклад               | Усі рядки у цьому перекладі буде перезаписано                                |
  | `prefix`           | Доданий статичний текст         |                                                                              |
  | `var_prefix`       | Додано на початку змінний текст |                                                                              |
  | `suffix`           | Додано статичний текст          |                                                                              |
  | `var_suffix`       | Доданий змінний текст           |                                                                              |
  | `var_multiplier`   | Змінний текстовий множник       | Скільки разів повторювати змінний текст залежно від довжини вихідного рядка. |
  | `include_readonly` | Включити рядки лише для читання |                                                                              |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Оновлення компонентів](#addon-event-component-update), [Щодня](#addon-event-daily)

Автоматично створює переклад додаванням префікса і суфікса до початкових рядків.

<!-- AUTOGENERATED END: weblate.generate.pseudolocale -->

Псевдолокалі корисні для пошуку рядків, які не приготовано до локалізації. Результат досягається зміною усіх придатних до перекладу початкових рядків таким чином, щоб рядок, який не змінено, було просто виявити під час запуску програми із відповідними рядками псевдолокальній мові.

Також можливий пошук рядків, локалізовані відповідники яких можуть не відповідати макету.

Використання змінних частин дає змогу шукати рядки, які можуть не поміститися в інтерфейсі після локалізації - вони розширюють текст на основі довжини вихідного рядка. Змінні тексти повторюються на довжину тексту, помножену на множник. Наприклад, `Hello world` зі змінним текстом `_` і змінним множником 1 стає `Hello world___________` - текст повторюється один раз для кожного символу у вихідному рядку.

Рядки буде створено за таким взірцем:

Prepended static text
Prepended variable text
Source string
Appended variable text
Appended static text

#### HINT
Ви можете використовувати справжні мови для перевірки, але у Weblate доступні виділені псевдолокалі — en_XA and ar_XB.

#### HINT
Ви можете скористатися цим додатком для того, щоб почати переклад новою локаллю наявної мови або подібною до іншої мовою. Щойно ви додасте переклад до складника, перейдіть до цього додатка.  *Приклад:* якщо у вас вже є локаль fr, і ви хочете започаткувати переклад локаллю fr_CA, просто встановіть fr як джерело, fr_CA як ціль і лишіть поля префікса і суфікса порожніми.

Вилучте додаток після заповнення параметрів перекладу, щоб запобігти зміні перекладів після копіювання з боку Weblate.

<!-- AUTOGENERATED START: weblate.gettext.configure -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-configure"></a>

### Оновити змінну ALL_LINGUAS у файлі «configure»

* **Ідентифікатор додатка:**
  `weblate.gettext.configure`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily), [Репозиторій після додавання](#addon-event-repository-post-add), [Стан сховища після видалення](#addon-event-repository-post-remove)

Оновлює змінну ALL_LINGUAS у файлах «configure», «configure.in» або «configure.ac» у разі додавання чи вилучення перекладу.

<!-- AUTOGENERATED END: weblate.gettext.configure -->

Оновлює змінну ALL_LINGUAS у файлах `configure`, `configure.in` або будь-яких файлах `configure.ac` у разі додавання чи видалення перекладу.

<a id="addon-weblate-gettext-customize"></a>

### Налаштувати виведення gettext

#### Versionremoved
Removed in version 5.13: Замінено на [Параметри формату файлу](https://docs.weblate.org/uk/latest/formats.md#file-format-params).

<!-- AUTOGENERATED START: weblate.gettext.django -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-django"></a>

### Оновити шаблон gettext (Django)

#### Versionadded
Added in version 5.17.

* **Ідентифікатор додатка:**
  `weblate.gettext.django`
* **Налаштування:**
  | `interval`         | Частота оновлення           | Як часто додаток повинен оновлювати файл POT під час оновлення компонента.<br/><br/>#### Доступні варіанти:<br/><br/>| `daily`   | Щодня     |<br/>|-----------|-----------|<br/>| `weekly`  | Щотижня   |<br/>| `monthly` | Щомісячно |                                                                                                                                                                                                                                                                 |
  |--------------------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `normalize_header` | Нормалізувати заголовок POT | Оновлює заголовки gettext і замінює коментарі-шаблони POT.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `location_mode`    | Розташування у джерелі      | Виберіть спосіб записування видобутих даних щодо розташування у коді до файла POT. Скористайтеся цим для зберігання даних щодо розташування до шаблону, не записуючи їх до перекладених файлів PO.<br/><br/>#### Доступні варіанти:<br/><br/>| `file`   | Використовувати параметри формату файлів     |<br/>|----------|----------------------------------------------|<br/>| `keep`   | Видобути дані щодо розташування до файла POT |<br/>| `omit`   | Не видобувати дані щодо розташування         | |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Ручний спусковий механізм](#addon-event-manual-trigger), [Постоновлення сховища](#addon-event-repository-post-update)

Оновлює шаблон gettext за допомогою вбудованої команди Django makemessages.

<!-- AUTOGENERATED END: weblate.gettext.django -->

This add-on updates the template configured in [Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base).
It is available for gettext PO components, and the component must define a
template for new translations.

The selected update frequency applies to automatic runs after repository
refreshes. Installing or reconfiguring the add-on runs it immediately, and
manual runs from add-on management or the API also bypass the frequency
schedule. After a successful update, Weblate commits the changed template and
reloads source strings.

The template update does not update translation PO files by itself. Keep
[Оновити файли po, порівнявши із pot (msgmerge)](#addon-weblate-gettext-msgmerge) installed when translation files should
follow template changes automatically. The install form for this add-on can
install that add-on, but existing add-on settings do not show that installation
option again.

#### Django requirements

This add-on requires **xgettext** and **msguniq**. It runs
Weblate’s internal extraction wrapper for Django messages instead of invoking a
project’s **manage.py makemessages**, so it does not load project Django
settings or applications.

The template for new translations must use the `django` or `djangojs`
domain. Supported template names are `django.pot`, `djangojs.pot`,
`django.po`, and `djangojs.po`. Weblate infers the source directory
from the template path and skips repository locale directories while extracting.

<!-- AUTOGENERATED START: weblate.gettext.linguas -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-linguas"></a>

### Оновити файл LINGUAS

* **Ідентифікатор додатка:**
  `weblate.gettext.linguas`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily), [Репозиторій після додавання](#addon-event-repository-post-add), [Стан сховища після видалення](#addon-event-repository-post-remove)

Оновлює файл LINGUAS у разі додавання або вилучення перекладу.

<!-- AUTOGENERATED END: weblate.gettext.linguas -->
<!-- AUTOGENERATED START: weblate.gettext.meson -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-meson"></a>

### Оновити файл POT (Meson)

#### Versionadded
Added in version 5.17.

* **Ідентифікатор додатка:**
  `weblate.gettext.meson`
* **Налаштування:**
  | `interval`          | Частота оновлення                                | Як часто додаток повинен оновлювати файл POT під час оновлення компонента.<br/><br/>#### Доступні варіанти:<br/><br/>| `daily`   | Щодня     |<br/>|-----------|-----------|<br/>| `weekly`  | Щотижня   |<br/>| `monthly` | Щомісячно |                                                                                                                                                                                                                                                                 |
  |---------------------|--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `normalize_header`  | Нормалізувати заголовок POT                      | Оновлює заголовки gettext і замінює коментарі-шаблони POT.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `location_mode`     | Розташування у джерелі                           | Виберіть спосіб записування видобутих даних щодо розташування у коді до файла POT. Скористайтеся цим для зберігання даних щодо розташування до шаблону, не записуючи їх до перекладених файлів PO.<br/><br/>#### Доступні варіанти:<br/><br/>| `file`   | Використовувати параметри формату файлів     |<br/>|----------|----------------------------------------------|<br/>| `keep`   | Видобути дані щодо розташування до файла POT |<br/>| `omit`   | Не видобувати дані щодо розташування         | |
  | `data_dirs`         | ITS data directories                             | Newline-separated repository-relative directories containing an its subdirectory, for example po for po/its. Earlier directories override later directories and bundled rules.                                                                                                                                                                                                                                                                                                                           |
  | `comment_mode`      | Коментарі до коду                                | Виберіть варіант видобування коментарів за допомогою xgettext: без коментарів, усі коментарі або лише коментарі із певною міткою.<br/><br/>#### Доступні варіанти:<br/><br/>| `off`    | Не видобувати коментарі      |<br/>|----------|------------------------------|<br/>| `all`    | Видобути усі коментарі       |<br/>| `tagged` | Видобути коментарі із міткою |                                                                                                                                  |
  | `comment_tag`       | Мітка коментарів                                 | Мітка, яку буде передано xgettext для видобування коментарів при використанні режиму коментарів із мітками.                                                                                                                                                                                                                                                                                                                                                                                              |
  | `checks`            | Перевірки xgettext                               | Додаткові перевірки чинності xgettext, які слід увімкнути для видобутих повідомлень.<br/><br/>#### Доступні варіанти:<br/><br/>| `ellipsis-unicode`   | ellipsis-unicode   |<br/>|----------------------|--------------------|<br/>| `space-ellipsis`     | space-ellipsis“    |<br/>| `quote-unicode`      | quote-unicode“     |<br/>| `bullet-unicode`     | bullet-unicode“    |                                                                                                                     |
  | `keyword`           | Additional keywords                              | Newline-separated extra keywords passed to xgettext using –keyword.                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | `keyword_exclusive` | Використовувати ключові слова у виключний спосіб | When enabled, passes `--keyword` without a value to xgettext before the additional keyword, disabling all default keywords so that only the keyword specified above is recognized.                                                                                                                                                                                                                                                                                                                       |
  | `preset`            | Пресет «Мезон»                                   | Вбудований набір аргументів xgettext, що відповідає інтеграції Meson з gettext. Цей набір для GLib додає опції ключових слів та прапорців форматування, які використовує допоміжна програма gettext у Meson.<br/><br/>#### Доступні варіанти:<br/><br/>| `glib`   | „GLib   |<br/>|----------|---------|                                                                                                                                                                                                 |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Ручний спусковий механізм](#addon-event-manual-trigger), [Постоновлення сховища](#addon-event-repository-post-update)

Оновлює шаблон gettext відповідно до стандартів Meson для gettext.

<!-- AUTOGENERATED END: weblate.gettext.meson -->

This add-on updates the template configured in [Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base).
It is available for gettext PO components, and the component must define a
template for new translations.

The selected update frequency applies to automatic runs after repository
refreshes. Installing or reconfiguring the add-on runs it immediately, and
manual runs from add-on management or the API also bypass the frequency
schedule. After a successful update, Weblate commits the changed template and
reloads source strings.

The template update does not update translation PO files by itself. Keep
[Оновити файли po, порівнявши із pot (msgmerge)](#addon-weblate-gettext-msgmerge) installed when translation files should
follow template changes automatically. The install form for this add-on can
install that add-on, but existing add-on settings do not show that installation
option again.

#### Meson requirements

This add-on requires **xgettext**; it does not invoke Meson. It follows
Meson gettext conventions by reading `POTFILES` or `POTFILES.in`
from the gettext directory and passing the GLib keyword and format-flag preset
to **xgettext**.

The gettext directory is the directory containing the template configured in
[Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base). It must contain `meson.build` and
`POTFILES` or `POTFILES.in`. A Meson project `meson.build`
must be present in that directory or one of its parent directories. If both
`POTFILES` and `POTFILES.in` exist, `POTFILES` is used.
An adjacent `POTFILES.skip` excludes listed source files from extraction.

Configure this add-on from the existing Meson gettext setup. In most Meson
projects, the gettext directory is `po/`, the template is named after the
gettext domain, and `po/meson.build` calls Meson’s gettext helper. Use the
same template path in [Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base), for example
`po/example.pot`, and keep `POTFILES` or `POTFILES.in` next to
that `meson.build` file.

Weblate does not read the source file list from `meson.build`. It uses
`POTFILES` or `POTFILES.in`, matching Meson’s gettext convention.
When the Meson project uses a non-default gettext directory or domain, mirror
that layout in the component template path.

<!-- AUTOGENERATED START: weblate.gettext.mo -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-mo"></a>

### Генерувати mo-файли

* **Ідентифікатор додатка:**
  `weblate.gettext.mo`
* **Налаштування:**
  | `path`   | Шлях до згенерованого MO-файлу             | Якщо не вказано, використовуватиметься розташування PO-файлу.                                |
  |----------|--------------------------------------------|----------------------------------------------------------------------------------------------|
  | `fuzzy`  | Включати рядки, які потребують редагування | Рядки, що потребують редагування (неточні), зазвичай не готові до використання як переклади. |
* **Перемикачі:**
  [Попередня фіксація сховища](#addon-event-repository-pre-commit)

Автоматично створює mo-файл для кожного зміненого po-файла.

<!-- AUTOGENERATED END: weblate.gettext.mo -->

Розташування згенерованого MO-файлу можна налаштувати, а поле для нього використовувати [Розмітка шаблонів](https://docs.weblate.org/uk/latest/admin/projects.md#markup).

#### NOTE
Якщо переклад буде вилучено, його файл PO буде вилучено зі сховища, але файл MO, який створено цим додатком, вилучено не буде. Файл MO доведеться вилучити зі сховища основного коду вручну.

<!-- AUTOGENERATED START: weblate.gettext.msgmerge -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-msgmerge"></a>

### Оновити файли po, порівнявши із pot (msgmerge)

#### Versionchanged
Змінено в версії 5.13: Settings конфігурацію перенесено до [Параметри формату файлу](https://docs.weblate.org/uk/latest/formats.md#file-format-params).

* **Ідентифікатор додатка:**
  `weblate.gettext.msgmerge`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Постоновлення сховища](#addon-event-repository-post-update)

Оновлює усі файли PO (відповідно до налаштування «Маски файлів»), встановлюючи відповідність файлу POT (який налаштовано параметром «Шаблон для нових перекладів») за допомогою msgmerge.

<!-- AUTOGENERATED END: weblate.gettext.msgmerge -->

Цей додаток є необхідним при роботі з файлами gettext PO, де файл POT (шаблон) оновлюється новими рядками або змінами до існуючих рядків. Коли файл POT оновлюється в репозиторії, цей додаток автоматично об’єднує ці зміни у всіх мовних файлах PO, забезпечуючи:

* Нові рядки, які можна перекладати, з’являються всіма мовами
* Вилучені рядки позначено як застарілі
* Змінені рядки позначені як такі, що потребують перевірки (нечіткі)

Most msgmerge command-line options can be set up through file format parameters
configuration. Enable the `po_remove_obsolete` parameter to remove obsolete
`#~` entries when PO files are saved.

#### SEE ALSO
* [Маска файлів](https://docs.weblate.org/uk/latest/admin/projects.md#component-filemask)
* [Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base)
* **msgmerge**
* [Чи оновлює Weblate файли перекладів між перекладами?](https://docs.weblate.org/uk/latest/faq.md#faq-cleanup)
* [Оновлення файлів мови перекладу](https://docs.weblate.org/uk/latest/devel/integration.md#updating-target-files)

<!-- AUTOGENERATED START: weblate.gettext.sphinx -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-sphinx"></a>

### Оновити файл POT (Sphinx)

#### Versionadded
Added in version 5.17.

* **Ідентифікатор додатка:**
  `weblate.gettext.sphinx`
* **Налаштування:**
  | `interval`         | Частота оновлення           | Як часто додаток повинен оновлювати файл POT під час оновлення компонента.<br/><br/>#### Доступні варіанти:<br/><br/>| `daily`   | Щодня     |<br/>|-----------|-----------|<br/>| `weekly`  | Щотижня   |<br/>| `monthly` | Щомісячно |                                                                                                                                                                                                                                                                 |
  |--------------------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `normalize_header` | Нормалізувати заголовок POT | Оновлює заголовки gettext і замінює коментарі-шаблони POT.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `location_mode`    | Розташування у джерелі      | Виберіть спосіб записування видобутих даних щодо розташування у коді до файла POT. Скористайтеся цим для зберігання даних щодо розташування до шаблону, не записуючи їх до перекладених файлів PO.<br/><br/>#### Доступні варіанти:<br/><br/>| `file`   | Використовувати параметри формату файлів     |<br/>|----------|----------------------------------------------|<br/>| `keep`   | Видобути дані щодо розташування до файла POT |<br/>| `omit`   | Не видобувати дані щодо розташування         | |
  | `filter_mode`      | Фільтрування                | За бажанням вилучіть рядки, які не потрібно перекладати, після вилучення даних за допомогою Sphinx.<br/><br/>#### Доступні варіанти:<br/><br/>| `none`         | Немає                |<br/>|----------------|----------------------|<br/>| `weblate_docs` | Документації Weblate |                                                                                                                                                                                                                      |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Ручний спусковий механізм](#addon-event-manual-trigger), [Постоновлення сховища](#addon-event-repository-post-update)

Оновлює шаблон gettext за допомогою засобу побудови gettext від Sphinx без завантаження конфігурації проєкту.

<!-- AUTOGENERATED END: weblate.gettext.sphinx -->

This add-on updates the template configured in [Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base).
It is available for gettext PO components, and the component must define a
template for new translations.

The selected update frequency applies to automatic runs after repository
refreshes. Installing or reconfiguring the add-on runs it immediately, and
manual runs from add-on management or the API also bypass the frequency
schedule. After a successful update, Weblate commits the changed template and
reloads source strings.

The template update does not update translation PO files by itself. Keep
[Оновити файли po, порівнявши із pot (msgmerge)](#addon-weblate-gettext-msgmerge) installed when translation files should
follow template changes automatically. The install form for this add-on can
install that add-on, but existing add-on settings do not show that installation
option again.

#### Sphinx requirements

This add-on requires **sphinx-build**, provided by the `sphinx`
installation extra. The template for new translations must be a `.pot`
file below a `locales` directory. The directory before `locales` is
used as the Sphinx source directory and must contain `conf.py`.

Extraction uses Weblate’s bundled Sphinx configuration and does not load the
project configuration. Weblate runs the Sphinx gettext builder, normalizes
source references to paths relative to the source directory, and copies the
generated template back to the configured template path.

<!-- AUTOGENERATED START: weblate.gettext.xgettext -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-gettext-xgettext"></a>

### Оновити файл POT (xgettext)

#### Versionadded
Added in version 5.17.

* **Ідентифікатор додатка:**
  `weblate.gettext.xgettext`
* **Налаштування:**
  | `interval`          | Частота оновлення                                | Як часто додаток повинен оновлювати файл POT під час оновлення компонента.<br/><br/>#### Доступні варіанти:<br/><br/>| `daily`   | Щодня     |<br/>|-----------|-----------|<br/>| `weekly`  | Щотижня   |<br/>| `monthly` | Щомісячно |                                                                                                                                                                                                                                                                 |
  |---------------------|--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `normalize_header`  | Нормалізувати заголовок POT                      | Оновлює заголовки gettext і замінює коментарі-шаблони POT.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | `location_mode`     | Розташування у джерелі                           | Виберіть спосіб записування видобутих даних щодо розташування у коді до файла POT. Скористайтеся цим для зберігання даних щодо розташування до шаблону, не записуючи їх до перекладених файлів PO.<br/><br/>#### Доступні варіанти:<br/><br/>| `file`   | Використовувати параметри формату файлів     |<br/>|----------|----------------------------------------------|<br/>| `keep`   | Видобути дані щодо розташування до файла POT |<br/>| `omit`   | Не видобувати дані щодо розташування         | |
  | `data_dirs`         | ITS data directories                             | Newline-separated repository-relative directories containing an its subdirectory, for example po for po/its. Earlier directories override later directories and bundled rules.                                                                                                                                                                                                                                                                                                                           |
  | `comment_mode`      | Коментарі до коду                                | Виберіть варіант видобування коментарів за допомогою xgettext: без коментарів, усі коментарі або лише коментарі із певною міткою.<br/><br/>#### Доступні варіанти:<br/><br/>| `off`    | Не видобувати коментарі      |<br/>|----------|------------------------------|<br/>| `all`    | Видобути усі коментарі       |<br/>| `tagged` | Видобути коментарі із міткою |                                                                                                                                  |
  | `comment_tag`       | Мітка коментарів                                 | Мітка, яку буде передано xgettext для видобування коментарів при використанні режиму коментарів із мітками.                                                                                                                                                                                                                                                                                                                                                                                              |
  | `checks`            | Перевірки xgettext                               | Додаткові перевірки чинності xgettext, які слід увімкнути для видобутих повідомлень.<br/><br/>#### Доступні варіанти:<br/><br/>| `ellipsis-unicode`   | ellipsis-unicode   |<br/>|----------------------|--------------------|<br/>| `space-ellipsis`     | space-ellipsis“    |<br/>| `quote-unicode`      | quote-unicode“     |<br/>| `bullet-unicode`     | bullet-unicode“    |                                                                                                                     |
  | `keyword`           | Additional keywords                              | Newline-separated extra keywords passed to xgettext using –keyword.                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | `keyword_exclusive` | Використовувати ключові слова у виключний спосіб | When enabled, passes `--keyword` without a value to xgettext before the additional keyword, disabling all default keywords so that only the keyword specified above is recognized.                                                                                                                                                                                                                                                                                                                       |
  | `input_mode`        | Джерело вхідного сигналу                         | Виберіть, чи xgettext має зчитувати вихідні файли за шаблонами glob, чи з маніфесту POTFILES/POTFILES.in.<br/><br/>#### Доступні варіанти:<br/><br/>| `patterns`   | Шаблони вихідних файлів   |<br/>|--------------|---------------------------|<br/>| `potfiles`   | Маніфест POTFILES         |                                                                                                                                                                                                       |
  | `language`          | xgettext: мова                                   | Мова програмування, яка передається до xgettext, наприклад Python або C. Не заповнюйте, щоб xgettext визначив мову за суфіксом назв файлів.                                                                                                                                                                                                                                                                                                                                                              |
  | `source_patterns`   | Шаблони вихідних файлів                          | Шаблони пошуку, відокремлені символами нового рядка, що відносяться до репозиторія, для файлів, які потрібно видобути за допомогою xgettext.                                                                                                                                                                                                                                                                                                                                                             |
  | `potfiles_path`     | Шлях до POTFILES                                 | Відносний шлях до POTFILES або POTFILES.in у репозиторії. Записи інтерпретуються відносно кореневого каталогу репозиторія. Якщо файл POTFILES.skip розміщений поруч із маніфестом, він виключає вказані в ньому файли з розпакування.                                                                                                                                                                                                                                                                    |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Ручний спусковий механізм](#addon-event-manual-trigger), [Постоновлення сховища](#addon-event-repository-post-update)

Оновлює шаблон gettext за допомогою xgettext для вибраних вихідних файлів.

<!-- AUTOGENERATED END: weblate.gettext.xgettext -->

This add-on updates the template configured in [Шаблон для нових перекладів](https://docs.weblate.org/uk/latest/admin/projects.md#component-new-base).
It is available for gettext PO components, and the component must define a
template for new translations.

The selected update frequency applies to automatic runs after repository
refreshes. Installing or reconfiguring the add-on runs it immediately, and
manual runs from add-on management or the API also bypass the frequency
schedule. After a successful update, Weblate commits the changed template and
reloads source strings.

The template update does not update translation PO files by itself. Keep
[Оновити файли po, порівнявши із pot (msgmerge)](#addon-weblate-gettext-msgmerge) installed when translation files should
follow template changes automatically. The install form for this add-on can
install that add-on, but existing add-on settings do not show that installation
option again.

#### xgettext requirements

This add-on requires **xgettext**. Configure either source file patterns
or a `POTFILES` / `POTFILES.in` manifest. Source file patterns are
repository-relative glob patterns and only matching repository files are passed
to **xgettext**.

Entries in `POTFILES` or `POTFILES.in` are resolved relative to the
repository root. They must be relative paths, stay inside the repository, and
point to existing files. Blank lines and lines starting with `#` are ignored.
If a `POTFILES.skip` file exists next to the manifest, its entries are
excluded from extraction.

Automatic repository refresh runs are skipped unless the changed files match
the configured source patterns, match files listed in the manifest, change a
watched manifest, or change the add-on configuration.

Start from the build-system extraction setup when configuring this add-on.
Autotools projects usually keep gettext inputs in `po/POTFILES.in` and
options such as the gettext domain and **xgettext** flags in
`po/Makevars` or related `Makefile.am` files. Use manifest mode
with the same `POTFILES.in` when its entries are plain repository-relative
source paths, and copy relevant extraction behavior into the add-on settings,
for example the language, comment extraction, checks, and additional keyword.

For other build systems, use the source list or extraction command they already
run as the source of truth. CMake, custom Makefiles, npm scripts, or project
specific extraction scripts often call **xgettext** directly or generate
an intermediate file list. Configure source patterns for simple layouts, or use
manifest mode when the project maintains a plain file list. If a build-system
manifest contains transformations or prefixes that are not file paths, convert
it to plain repository-relative paths before using it as `POTFILES`.

#### Mixed source formats and ITS rules

Leave xgettext language blank to extract messages from different
formats into the same POT. Include all inputs in the source patterns or
`POTFILES`, for example:

```text
common/messages.py
qt/application.desktop
qt/application.policy
data/application.metainfo.xml
```

Desktop entries use the native **xgettext** parser. Weblate bundles ITS
rules for Polkit policies, AppStream/MetaInfo, GSettings, GTK Builder, and Shared
MIME Info. These rules are included in the Weblate package, including Docker
installations; no additional system packages are required for these formats.
The [Оновити файл POT (Meson)](#addon-weblate-gettext-meson) add-on uses the same rules.

Extraction follows upstream gettext and ITS behavior. In particular, desktop
extraction includes keys such as `Name`, `GenericName`, and `Comment`;
Polkit rules select `description` and `message` elements without filtering
by `gettext-domain`. Use untranslated policy sources: upstream Polkit rules
also select elements carrying `xml:lang`.

For custom XML formats or overrides, configure ITS data directories.
Enter one repository-relative directory per line, in priority order. Each must
contain an `its/` subdirectory with `.loc` locating rules and `.its`
extraction rules. For example, enter `po` for `po/its/example.loc` and
`po/its/example.its`, or `.` for `its/` at the repository root.
In API add-on configuration, use a list: `"data_dirs": ["po", "data"]`.

Earlier directories take precedence over later ones, followed by Weblate’s
bundled rules and gettext’s system rules. The directories are passed through
`GETTEXTDATADIRS`. Configure them explicitly even when using Meson; Weblate
does not read `data_dirs` from `meson.build` or inherit an administrator’s
`GETTEXTDATADIRS` environment variable.

Rule directories and files must stay inside the repository and must not be
symbolic links. A locating rule’s `target` must name an existing `.its` file
in the same directory. DTDs, entity declarations, and external rule references
are not supported. Weblate validates project-local rules before extraction and
reports invalid rules as add-on errors. Changes, additions, or deletions in the
configured `its/` directories trigger extraction even when source files
have not changed.

#### SEE ALSO
[GNU gettext ITS rules](https://www.gnu.org/software/gettext/manual/html_node/ITS-Rules.html)
and [locating rules](https://www.gnu.org/software/gettext/manual/html_node/Locating-Rules.html).

<!-- AUTOGENERATED START: weblate.git.squash -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-git-squash"></a>

### Сполучити Git подання

* **Ідентифікатор додатка:**
  `weblate.git.squash`
* **Налаштування:**
  | `squash`          | Сполучення подань                                          | #### Доступні варіанти:<br/><br/>| `all`             | Всі подання в одне      |<br/>|-------------------|-------------------------|<br/>| `language`        | Для мови                |<br/>| `file`            | Для файлу               |<br/>| `author`          | Для кожного автора      |<br/>| `author-language` | Per author and language |   |
  |-------------------|------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `append_trailers` | Дописати кінцевики для обʼєднаного повідомлення про внесок | Рядки-кінцевики подібні до заголовків повідомлень електронної пошти за RFC 822. Їх дописують в кінці повідомлення про внесок у довільній формі, наприклад, «Co-authored-by: …».                                                                                                                                                                        |
  | `commit_message`  | Повідомлення щодо подання                                  | Це повідомлення про внесок буде використано замість поєднаних повідомлень про внески з обʼєднаних внесків.                                                                                                                                                                                                                                             |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Репозиторій після фіксації](#addon-event-repository-post-commit)

Обʼєднати Git подання перед відправленням змін.

<!-- AUTOGENERATED END: weblate.git.squash -->

#### HINT
Щоб уникнути непотрібних конфліктів, рекомендується налаштувати автоматичне отримання змін у вихідному коді за допомогою вебхуків або API, див. [Оновлення сховищ](https://docs.weblate.org/uk/latest/admin/continuous.md#update-vcs).

Внески Git можна об’єднувати до запису змін з використанням одного з таких режимів:

* Всі подання в одне
* Для мови
* Для файлу
* Для кожного автора
* Per author and language

Початкові повідомлення про внесок зберігаються, але авторство втрачається, якщо не позначено пункт За автором або повідомлення про внесок не налаштовано на його включення.

Початкові повідомлення про внески можна, якщо хочеться, перевизначити нетиповим повідомленням про внесок.

Трейлери (рядки внеску, подібні до `Co-authored-by: ...`) можна, якщо хочеться, вилучити з початкових повідомлень про внесок і дописати наприкінці об’єднаного повідомлення про внесок. Це також створює належний запис авторських прав `Co-authored-by:` для кожного перекладача.

<a id="addon-weblate-json-customize"></a>

### Налагодити виведення JSON

#### Versionchanged
Змінено в версії 5.12: Avoid spaces after separators додано опцію.

#### Versionremoved
Removed in version 5.13: Замінено на [Параметри формату файлу](https://docs.weblate.org/uk/latest/formats.md#file-format-params).

<!-- AUTOGENERATED START: weblate.hosted.reset -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-hosted-reset"></a>

### Скинути репозиторій до стану «upstream»

#### Versionadded
Added in version 5.17.

* **Ідентифікатор додатка:**
  `weblate.hosted.reset`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily)

Щоночі скидає всі зміни у репозиторії Weblate.

<!-- AUTOGENERATED END: weblate.hosted.reset -->
<!-- AUTOGENERATED START: weblate.properties.sort -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-properties-sort"></a>

### Форматувати файл властивостей Java

* **Ідентифікатор додатка:**
  `weblate.properties.sort`
* **Налаштування:**
  | `case_sensitive`   | Дозволити сортування ключів з урахуванням регістру   |    |
  |--------------------|------------------------------------------------------|----|
* **Перемикачі:**
  [Попередня фіксація сховища](#addon-event-repository-pre-commit)

Форматує й упорядковує файл властивостей Java.

<!-- AUTOGENERATED END: weblate.properties.sort -->
* Встановлює усюди символи нового рядка Unix.
* Встановлює форматування керівних послідовностей Unicode (якщо такі є) з використанням великих літер.
* Вилучає порожні рядки і коментарі.
* Упорядковує рядки за ключовими значеннями.
* Відкидає рядки-повтори.

<!-- AUTOGENERATED START: weblate.removal.comments -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-removal-comments"></a>

### Видалення застарілого коментаря

* **Ідентифікатор додатка:**
  `weblate.removal.comments`
* **Налаштування:**
  | `age`   | Дні для збереження   |    |
  |---------|----------------------|----|
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily)

Вказати термін вилучення застарілих коментарів.

<!-- AUTOGENERATED END: weblate.removal.comments -->

Це може бути корисним для вилучення застарілих коментарів, які могли перестати бути актуальними. Користайтеся цією можливістю обережно, оскільки те, що коментар застарів, не означає, що він перестав бути важливим.

<!-- AUTOGENERATED START: weblate.removal.suggestions -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-removal-suggestions"></a>

### Видалити застарілу пропозицію

* **Ідентифікатор додатка:**
  `weblate.removal.suggestions`
* **Налаштування:**
  | `age`   | Дні для збереження   |                                                                                                                                                 |
  |---------|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
  | `votes` | Поріг голосування    | Поріг для видалення. Залиште поле порожнім, щоб видаляти пропозиції незалежно від кількості голосів. Це поле не діє, якщо голосування вимкнено. |
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Щодня](#addon-event-daily)

Встановити строк вилучення пропозицій.

<!-- AUTOGENERATED END: weblate.removal.suggestions -->

Це може бути дуже корисним у поєднанні із голосуванням за пропозиції (див. [Експертне рецензування](https://docs.weblate.org/uk/latest/workflows.md#peer-review)) для вилучення пропозицій, які не отримують достатньої кількості позитивних голосів протягом вказаного часового проміжку.

<!-- AUTOGENERATED START: weblate.resx.update -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-resx-update"></a>

### Оновити файли RESX

* **Ідентифікатор додатка:**
  `weblate.resx.update`
* **Налаштування:**
  Цей додаток не має налаштувань.
* **Перемикачі:**
  [Установка надбудови](#addon-event-add-on-installation), [Постоновлення сховища](#addon-event-repository-post-update)

Оновити усі файли перекладу, щоб вони відповідали одномовному основному файлу. Невикористані рядки вилучаються, а нові додаються як копії початкового рядка.

<!-- AUTOGENERATED END: weblate.resx.update -->

#### HINT
Скористайтеся [Очищення файлів перекладу](#addon-weblate-cleanup-generic), якщо ви хочете лише вилучити застарілі переклади.

#### SEE ALSO
[Чи оновлює Weblate файли перекладів між перекладами?](https://docs.weblate.org/uk/latest/faq.md#faq-cleanup)

<!-- AUTOGENERATED START: weblate.webhook.slack -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-webhook-slack"></a>

### Слак Вебхуки

#### Versionadded
Added in version 5.12.

* **Ідентифікатор додатка:**
  `weblate.webhook.slack`
* **Налаштування:**
  | `webhook_url`   | Адреса дієскрипту        |                                                                                                                                    |
  |-----------------|--------------------------|------------------------------------------------------------------------------------------------------------------------------------|
  | `event_filter`  | Події зміни для вмикання | Choose which change events should trigger this add-on.<br/>[Події зміни для вмикання](#addon-choice-event-filter) |
  | `events`        | Вибрані події зміни      | [Вибрані події зміни](#addon-choice-events)                                                                 |
* **Перемикачі:**
  [Зміна події](#addon-event-event-change)

Надсилає сповіщення до каналу Slack на основі вибраних подій.

<!-- AUTOGENERATED END: weblate.webhook.slack -->

#### WARNING
У вмісті сповіщень можуть міститися теги HTML. Це відома проблема, яку буде вирішено найближчим часом; див. [https://github.com/WeblateOrg/weblate/issues/15056](https://github.com/WeblateOrg/weblate/issues/15056).

#### HINT
Щоб отримати URL-адресу вебхука, виконайте кроки, описані [в документації до Slack Incoming Webhooks.](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks)

<!-- AUTOGENERATED START: weblate.webhook.webhook -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

<a id="addon-weblate-webhook-webhook"></a>

### Дієскрипт

#### Versionadded
Added in version 5.11.

#### Versionchanged
Змінено в версії 5.15: Відповідність довжини секретного коду специфікації тепер підтверджена.

* **Ідентифікатор додатка:**
  `weblate.webhook.webhook`
* **Налаштування:**
  | `webhook_url`   | Адреса дієскрипту        |                                                                                                                                    |
  |-----------------|--------------------------|------------------------------------------------------------------------------------------------------------------------------------|
  | `secret`        | Секрет вебхука           | Секрет стандартних вебхуків — це рядок, закодований у base64.                                                                      |
  | `event_filter`  | Події зміни для вмикання | Choose which change events should trigger this add-on.<br/>[Події зміни для вмикання](#addon-choice-event-filter) |
  | `events`        | Вибрані події зміни      | [Вибрані події зміни](#addon-choice-events)                                                                 |
* **Перемикачі:**
  [Зміна події](#addon-event-event-change)

Надсилає сповіщення зовнішнім службам на основі вибраних подій, дотримуючись специфікації Standard Webhooks.

<!-- AUTOGENERATED END: weblate.webhook.webhook -->

The request payload complies with the [Weblate Messaging](https://docs.weblate.org/uk/latest/contributing/schemas.md#schema-messaging) schema. The
`action` field uses the action name listed in [Вибрані події зміни](#change-actions).
The OpenAPI description can also be found at `/api/docs/`.
Sample request body:

```json
{
   "change_id": 99,
   "action": "Translation changed",
   "timestamp": "2019-08-24T14:15:22Z",
   "target": "Nazdar svete!",
   "old": "Nazdar!",
   "source": "Hello, world",
   "url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
   "author": "author-username",
   "user": "user-username",
   "project": "project-slug",
   "component": "component-slug",
   "translation": "cs"
}
```

Зразок тексту запиту з категоріями:

```json
{
   "change_id": 8910,
   "action": "Component renamed",
   "timestamp": "2025-06-11T07:15:09Z",
   "target": ["new-name"],
   "old": ["component-slug"],
   "url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
   "user": "testuser",
   "project": "project-slug",
   "component": "component-slug",
   "category": [
      "sub-category",
      "child-category",
      "parent-category"
   ]
}
```

Зразки заголовків запиту:

```json
{
   "webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
   "webhook-timestamp": "1748505623.044281",
   "webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}
```

`webhook-signature` — це список підписів HMAC, розділених пробілами, згенерованих за допомогою рядка `secret`, корисного навантаження запиту, `webhook-timestamp` та `webhook-id`. Це гарантує автентичність та цілісність запиту вебхука.

Наданий `secret` — це рядок у форматі base64 довжиною від 24 байтів (192 біти) до 64 байтів (512 бітів). Для легкої ідентифікації його можна починати з префікса `whsec_`.

Щоб перевірити запит, ви можете скористатися методом `Webhook.verify` з бібліотеки `standardwebhooks` або реалізацією «Стандартної специфікації вебхуків».

#### SEE ALSO
* [Стандартна специфікація вебхуків](https://github.com/standard-webhooks/standard-webhooks/blob/main/spec/standard-webhooks.md)
* [Weblate Messaging](https://docs.weblate.org/uk/latest/contributing/schemas.md#schema-messaging)
* [Бібліотека Python для стандартних вебхуків](https://pypi.org/project/standardwebhooks/)

The [Автоматичний переклад](#addon-weblate-autotranslate-autotranslate) mode
Add as approved translation creates approved strings when reviews are
enabled for the target language. If the project settings or a language workflow
override disable reviews, it creates translated strings instead. The configured
mode is preserved, including for project-wide and site-wide add-ons whose targets
have different review settings. Configuring this mode requires the usual add-on
management permission; it does not require the configuring user to be a reviewer.

<a id="component-discovery-limits"></a>

The [Виявлення складників](#addon-weblate-discovery-discovery) add-on stops with an error if the
repository scan exceeds 100,000 paths or matching translation files would
require more than 1,000,000 path-to-mask comparisons. The comparison limit is
checked using the number of repository paths multiplied by the number of file
masks. These fixed limits bound resource consumption when repository content
determines the masks. When either limit is exceeded, discovery does not create
or remove components.

<a id="webhook-response-limits"></a>

The [Дієскрипт](#addon-weblate-webhook-webhook) and
[Слак Вебхуки](#addon-weblate-webhook-slack) add-ons request uncompressed responses and
reject responses with a `Content-Encoding` other than `identity` before
reading their bodies. They limit each response body to 1 MiB and response
headers to 64 KiB, including duplicate headers and separators.
If a response is encoded or either fixed limit is exceeded, Weblate closes the
response and records an add-on error without storing the response body or headers.
The remote service might already have accepted the notification even when
Weblate records this error.

## Застарілі доповнення

<a id="addon-weblate-gettext-authors"></a>

### Перекладачі в коментарі

#### Versionremoved
Removed in version 2026.10: Replaced by [Contributor comments](https://docs.weblate.org/uk/latest/formats/gettext.md#gettext-contributor-comments).

Existing installations of `weblate.gettext.authors` are migrated to the
`gettext` value of the `po_contributor_comments` file format parameter for
each affected PO component. This includes components covered by category-,
project-, and site-wide installations. New components default to disabled unless
their file format parameters are copied from another component.

Remove `weblate.addons.gettext.GettextAuthorComments` from custom
[`WEBLATE_ADDONS`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-WEBLATE_ADDONS) lists and `weblate.gettext.authors` entries from
[`DEFAULT_ADDONS`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-DEFAULT_ADDONS). Configure [Contributor comments](https://docs.weblate.org/uk/latest/formats/gettext.md#gettext-contributor-comments) instead.

<a id="addon-weblate-xml-customize"></a>

### Налагодити виведення XML

#### Versionadded
Added in version 4.15.

#### Versionremoved
Removed in version 5.13: Замінено на [Параметри формату файлу](https://docs.weblate.org/uk/latest/formats.md#file-format-params).

<a id="addon-weblate-yaml-customize"></a>

### Налагодити виведення YAML

#### Versionremoved
Removed in version 5.13: Замінено на [Параметри формату файлу](https://docs.weblate.org/uk/latest/formats.md#file-format-params).

<!-- AUTOGENERATED START: addon-parameters -->
<!-- This section is automatically generated by `./manage.py list_addons`. Do not edit manually. -->

## Загальні додаткові параметри

<a id="addon-choice-engines"></a>

### Рушії компʼютерного перекладу

#### Доступні варіанти:

| `alibaba`                    | Alibaba                              |
|------------------------------|--------------------------------------|
| `aws`                        | Amazon Translate                     |
| `anthropic`                  | Anthropic                            |
| `apertium-apy`               | Apertium APy                         |
| `microsoft-translator`       | Azure AI Translator                  |
| `azure-openai`               | Azure OpenAI                         |
| `baidu`                      | Baidu                                |
| `cyrtranslit`                | CyrTranslit                          |
| `deepl`                      | DeepL                                |
| `glosbe`                     | Glosbe                               |
| `google-translate-api-v3`    | Розширений хмарний перекладач Google |
| `google-translate`           | Базовий хмарний перекладач Google    |
| `ltengine`                   | LTEngine                             |
| `libretranslate`             | LibreTranslate                       |
| `mistral`                    | Mistral                              |
| `modernmt`                   | ModernMT                             |
| `mymemory`                   | MyMemory                             |
| `netease-sight`              | Netease Sight                        |
| `ollama`                     | Ollama                               |
| `openai`                     | OpenAI                               |
| `sap-translation-hub`        | Концентратор перекладів SAP          |
| `systran`                    | Systran                              |
| `weblate`                    | Weblate                              |
| `weblate-translation-memory` | Пам’ять перекладів Weblate           |
| `yandex`                     | Yandex                               |
| `yandex-v2`                  | Yandex v2                            |
| `youdao-zhiyun`              | Youdao Zhiyun                        |
| `etranslation`               | eTranslation                         |
| `tmserver`                   | tmserver                             |

<a id="addon-choice-file-format"></a>

### Формат файлу

#### Доступні варіанти:

| `apple-xliff`           | XLIFF 1.2 з розширеннями Apple             |
|-------------------------|--------------------------------------------|
| `appstore`              | Файли метаданих крамниці програм           |
| `arb`                   | Файл ARB                                   |
| `aresource`             | Рядки ресурсів Android                     |
| `asciidoc`              | Файли AsciiDoc                             |
| `ass`                   | Розширений файл субтитрів SubStation Alpha |
| `catkeys`               | Ключі від котів хайку                      |
| `cmp-resource`          | Ресурс Compose Multiplatform               |
| `csv`                   | Файл CSV                                   |
| `csv-multi`             | Багатозначний файл CSV                     |
| `csv-simple`            | Простий файл CSV                           |
| `dokuwiki`              | Текстовий файл DokuWiki                    |
| `dtd`                   | Файл DTD                                   |
| `flatxml`               | Плоский XML-файл                           |
| `fluent`                | Файл Fluent                                |
| `formatjs`              | Формат.JS файлуJSON                        |
| `go-i18n-json`          | Файл JSON go-i18n v1                       |
| `go-i18n-json-v2`       | Файл JSON go-i18n v2                       |
| `go-i18n-toml`          | Файл TOML go-i18n                          |
| `gotext`                | файл JSON gotext                           |
| `gwt`                   | Властивості GWT                            |
| `html`                  | Файл HTML                                  |
| `i18next`               | Файл JSON i18next v3                       |
| `i18nextv4`             | Файл JSON i18next v4                       |
| `idml`                  | Файл IDML                                  |
| `ini`                   | Файл INI                                   |
| `islu`                  | Файл INI Inno Setup                        |
| `joomla`                | Мовний файл Joomla                         |
| `json`                  | Файл JSON                                  |
| `json-nested`           | Файл JSON із вкладеною структурою          |
| `laravel`               | Рядки PHP Laravel                          |
| `markdown`              | Файл Markdown                              |
| `mdx`                   | Файл MDX                                   |
| `mediawiki`             | Текстовий файл MediaWiki                   |
| `mi18n-lang`            | @draggable/мовний файл mi18n               |
| `moko-resource`         | Мобільний ресурс Kotlin                    |
| `nextcloud-json`        | JSON-файл Nextcloud                        |
| `odf`                   | Файл OpenDocument                          |
| `php`                   | Рядки PHP                                  |
| `po`                    | gettext PO файл                            |
| `po-mono`               | gettext PO файл (одномовний)               |
| `poxliff`               | XLIFF 1.2 із розширеннями gettext          |
| `properties`            | Властивост Java                            |
| `rc`                    | Файл RC                                    |
| `resjson`               | Файл RESJSON                               |
| `resourcedictionary`    | файл ResourceDictionary                    |
| `resx`                  | Файл ресурсів .NET                         |
| `ruby-yaml`             | Файл Ruby YAML                             |
| `srt`                   | Файл субтитрів SubRip                      |
| `ssa`                   | Файл субтитрів SubStation Alpha            |
| `strings`               | Рядки iOS                                  |
| `stringsdict`           | Файл Stringsdict                           |
| `sub`                   | Файл субтитрів MicroDVD                    |
| `tbx`                   | Файл TermBase eXchange                     |
| `toml`                  | TOML-файл                                  |
| `ts`                    | Файл перекладу Qt Linguist (версія 2)      |
| `ts1`                   | Файл перекладу Qt Linguist (версія 1)      |
| `txt`                   | Звичайний текстовий файл                   |
| `webextension`          | Файл JSON для WebExtension                 |
| `wxl`                   | Файл WixLocalization                       |
| `xliff`                 | Файл перекладу XLIFF 1.2                   |
| `xliff2`                | Файл перекладу XLIFF 2.0                   |
| `xlsx`                  | Excel Open XML                             |
| `xwiki-fullpage`        | Повна сторінка XWiki                       |
| `xwiki-java-properties` | Властивості Java XWiki                     |
| `xwiki-page-properties` | Властивості сторінки XWiki                 |
| `yaml`                  | Файл YAML                                  |

<a id="addon-choice-event-filter"></a>

### Події зміни для вмикання

#### Доступні варіанти:

| `content`   | Події вмісту перекладу   |
|-------------|--------------------------|
| `all`       | Усі події зміни          |
| `custom`    | Вибрані події зміни      |

<a id="addon-choice-events"></a>

<a id="change-actions"></a>

### Вибрані події зміни

The following change actions can appear in notification payloads. Fedora Messaging uses the identifier column in message topics, while webhook payloads use the name column in the `action` field.

#### Доступні варіанти:

| ID    | Identifier                               | Назва                                           | Опис                                                                                                                                                                                        |
|-------|------------------------------------------|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `0`   | `resource_updated`                       | Ресурс оновлено                                 | Файл перекладу було синхронізовано з його репозиторієм.                                                                                                                                     |
| `1`   | `translation_completed`                  | Переклад завершено                              | Переклад став повним у результаті окремого редагування. Автоматичний переклад, вивантаження перекладу та пакетні редагування не призводитимуть до появи цієї події.                         |
| `2`   | `translation_changed`                    | Переклад змінено                                | Наявний переклад було змінено користувачем.                                                                                                                                                 |
| `3`   | `comment_added`                          | Коментар додано                                 | До рядка було додано коментар.                                                                                                                                                              |
| `4`   | `suggestion_added`                       | Додано пропозицію                               | Було додано пропозицію перекладу.                                                                                                                                                           |
| `5`   | `translation_added`                      | Додано переклад                                 | Раніше не перекладений рядок було перекладено користувачем.                                                                                                                                 |
| `6`   | `automatically_translated`               | Перекладено автоматично                         | Переклад було додано або змінено у результаті автоматичного перекладу. Цю подію буде створено замість «Переклад додано» або «Переклад змінено».                                             |
| `7`   | `suggestion_accepted`                    | Пропозицію прийнято                             | Пропозицію перекладу було прийнято як переклад.                                                                                                                                             |
| `8`   | `translation_reverted`                   | Пропозицію завернуто                            | Переклад було відновлено до ранішого значення.                                                                                                                                              |
| `9`   | `translation_uploaded`                   | Пропозицію завантажено                          | Переклад було додано або змінено у результаті вивантаження файла. Цю подію буде створено замість «Переклад додано» або «Переклад змінено».                                                  |
| `13`  | `source_string_added`                    | Додано початковий рядок                         | Початковий рядок було додано поза сховищем або оновлення вивантаженням.                                                                                                                     |
| `14`  | `component_locked`                       | Складник заблоковано                            | Складник було заблоковано для перекладу.                                                                                                                                                    |
| `15`  | `component_unlocked`                     | Складник розблоковано                           | Складник було розблоковано для перекладу.                                                                                                                                                   |
| `17`  | `changes_committed`                      | Записано зміни                                  | Зміни з черги обробки складників було внесено до репозиторія.                                                                                                                               |
| `18`  | `changes_pushed`                         | Зміни записано до сховища                       | Зміни у репозиторії було записано до основного репозиторія.                                                                                                                                 |
| `19`  | `repository_reset`                       | Відновлено початковий стан сховища              | Стан репозиторія було відновлено до стану в основній гілці розробки.                                                                                                                        |
| `20`  | `repository_merged`                      | Сховища об’єднано                               | Зміни в основній гілці розробки було об’єднано зі кодом на Weblate.                                                                                                                         |
| `21`  | `repository_rebased`                     | Зміни зі сховища перенесено                     | Зміни у репозиторії було перенесено на код з основної гілки розробки.                                                                                                                       |
| `22`  | `repository_merge_failed`                | Не вдалося об’єднати сховища                    | Не вдалося об’єднати зміни з кодом в основній гілці розробки.                                                                                                                               |
| `23`  | `repository_rebase_failed`               | Не вдалося перенести зміни зі сховища           | Не вдалося перенести зміни зі сховища.                                                                                                                                                      |
| `24`  | `parsing_failed`                         | Не вдалося обробити дані                        | Weblate не вдалося обробити файл перекладу.                                                                                                                                                 |
| `25`  | `translation_removed`                    | Переклад вилучено                               | Переклад мовою було вилучено.                                                                                                                                                               |
| `26`  | `suggestion_removed`                     | Вилучено пропозицію                             | Пропозицію перекладу вилучено.                                                                                                                                                              |
| `27`  | `translation_replaced`                   | Переклад замінено                               | Переклад було змінено внаслідок дії з пошуку із заміною. Буде надіслано замість «Переклад змінено».                                                                                         |
| `28`  | `repository_push_failed`                 | Не вдалося записати зміни до сховища            | Не вдалося записати зміни у сховищі до основної гілки.                                                                                                                                      |
| `29`  | `suggestion_removed_during_cleanup`      | Вилучено пропозицію під час очищення            | Застарілу пропозицію перекладу вилучено під час очищення.                                                                                                                                   |
| `30`  | `source_string_changed`                  | Змінено початковий рядок                        | Початковий рядок було змінено на Weblate.                                                                                                                                                   |
| `31`  | `string_added`                           | Додано рядок                                    | Новий рядок було додано на Weblate.                                                                                                                                                         |
| `32`  | `bulk_status_changed`                    | Змінено пакетний стан                           | Стан перекладу одного або декількох рядків було пакетно змінено.                                                                                                                            |
| `33`  | `visibility_changed`                     | Змінено видимість                               | Змінено видимість проєкту або складника.                                                                                                                                                    |
| `34`  | `user_added`                             | Додано користувача                              | Користувачу було надано доступ.                                                                                                                                                             |
| `35`  | `user_removed`                           | Вилучено користувача                            | Доступ користувача було вилучено.                                                                                                                                                           |
| `36`  | `translation_approved`                   | Переклад затверджено                            | Переклад було затверджено під час рецензування.                                                                                                                                             |
| `37`  | `marked_for_edit`                        | Позначено для редагування                       | Переклад було позначено як такий, що потребує редагування.                                                                                                                                  |
| `38`  | `component_removed`                      | Складник вилучено                               | Складник перекладу було вилучено.                                                                                                                                                           |
| `39`  | `project_removed`                        | Проєкт вилучено                                 | Проєкт перекладу було вилучено.                                                                                                                                                             |
| `41`  | `project_renamed`                        | Проєкт перейменовано                            | Проєкт перекладу було перейменовано.                                                                                                                                                        |
| `42`  | `component_renamed`                      | Складник перейменовано                          | Складник перекладу було перейменовано.                                                                                                                                                      |
| `43`  | `moved_component`                        | Пересунуто складник                             | Складник було переміщено у межах проєкту.                                                                                                                                                   |
| `45`  | `contributor_joined`                     | Долучився учасник                               | Користувач зробив перший внесок до перекладу.                                                                                                                                               |
| `46`  | `announcement_posted`                    | Оприлюднено оголошення                          | Оприлюднено оголошення.                                                                                                                                                                     |
| `47`  | `alert_triggered`                        | Надіслано попередження                          | Спрацювало попередження щодо складника.                                                                                                                                                     |
| `48`  | `language_added`                         | Додано мову                                     | Додано переклад мовою.                                                                                                                                                                      |
| `49`  | `language_requested`                     | Надіслано запит щодо мови                       | Надійшов запит від користувача на нову мову.                                                                                                                                                |
| `50`  | `project_created`                        | Створено проєкт                                 | Створено проєкт з перекладу.                                                                                                                                                                |
| `51`  | `component_created`                      | Створено складник                               | Створено складник перекладу.                                                                                                                                                                |
| `52`  | `user_invited`                           | Запрошено користувача                           | До проєкту запрошено користувача.                                                                                                                                                           |
| `53`  | `repository_notification_received`       | Отримано сповіщення щодо сховища                | Weblate отримано сповіщення репозиторію від сайта сайтів розміщення коду.                                                                                                                   |
| `54`  | `translation_replaced_file_by_upload`    | Замінено файл перекладу вивантаженням           | Файл перекладу було замінено вивантаженим файлом.                                                                                                                                           |
| `55`  | `license_changed`                        | Змінено умови ліцензування                      | Змінено відомості щодо ліцензування проєкту або складника.                                                                                                                                  |
| `56`  | `contributor_license_agreement_changed`  | Ліцензійна угода співучасника змінена           | Змінено ліцензіційну угоду учасника.                                                                                                                                                        |
| `57`  | `screenshot_added`                       | Додано знімок екрана                            | З рядком пов’язано знімок вікна.                                                                                                                                                            |
| `58`  | `screenshot_uploaded`                    | Знімок вивантажено                              | Вивантажено зображення знімка вікна.                                                                                                                                                        |
| `59`  | `string_updated_in_the_repository`       | Рядок оновлено у репозиторії                    | Під час синхронізації з репозиторієм змінено рядок.                                                                                                                                         |
| `60`  | `add-on_installed`                       | Додаток встановлено                             | Встановлено додаток.                                                                                                                                                                        |
| `61`  | `add-on_configuration_changed`           | Змінено налаштування додатка                    | Змінено налаштування додатка.                                                                                                                                                               |
| `62`  | `add-on_uninstalled`                     | Додаток вилучено                                | Додаток вилучено.                                                                                                                                                                           |
| `63`  | `string_removed`                         | Вилучено рядок                                  | З перекладу було вилучено рядок.                                                                                                                                                            |
| `64`  | `comment_removed`                        | Вилучено коментар                               | Вилучено коментар до рядка.                                                                                                                                                                 |
| `65`  | `comment_resolved`                       | Вирішено коментар                               | Коментар до рядка позначено як вирішений.                                                                                                                                                   |
| `66`  | `explanation_updated`                    | Оновлено пояснення                              | Оновлено пояснення до початкового рядка.                                                                                                                                                    |
| `67`  | `category_removed`                       | Вилучено категорію                              | Вилучено категорію складників.                                                                                                                                                              |
| `68`  | `category_renamed`                       | Перейменовано категорію                         | Перейменовано категорію складників.                                                                                                                                                         |
| `69`  | `category_moved`                         | Пересунуто категорію                            | Пересунуто категорію складників.                                                                                                                                                            |
| `70`  | `saving_string_failed`                   | Не вдалося зберегти рядок                       | Weblate не вдалося зберегти змінений рядок.                                                                                                                                                 |
| `71`  | `string_added_in_the_repository`         | Рядок додано до репозиторія                     | Під час синхронізації даних з репозиторієм виявлено новий рядок.                                                                                                                            |
| `72`  | `string_updated_in_the_upload`           | Рядок оновлено під час завантаження             | Під час обробки вивантаженого файла змінено рядок.                                                                                                                                          |
| `73`  | `string_added_in_the_upload`             | Рядок додано під час завантаження               | Під час обробки вивантаженого файла виявлено новий рядок.                                                                                                                                   |
| `74`  | `translation_updated_by_source_upload`   | Переклад оновлено після завантаження джерела    | Після вивантаження початкового файла переклад синхронізовано.                                                                                                                               |
| `75`  | `component_translation_completed`        | Переклад складника завершено                    | Після окремого редагування усі переклади мовою у складнику стали повністю перекладеними. Автоматичний переклад, вивантаження та пакетне редагування не призводять до надсилання цієї події. |
| `76`  | `applied_enforced_check`                 | Застосовано примусову перевірку                 | Переклад було позначено як такий, що потребує редагування, примусовою перевіркою.                                                                                                           |
| `77`  | `propagated_change`                      | Розповсюджена зміна                             | Редагування перекладу поширено на інший відповідний рядок.                                                                                                                                  |
| `78`  | `file_uploaded`                          | Файл завантажено                                | До перекладу було вивантажено файл.                                                                                                                                                         |
| `79`  | `extra_flags_updated`                    | Додаткові прапорці оновлено                     | Було оновлено додатокві прапорці початкового рядка.                                                                                                                                         |
| `80`  | `font_uploaded`                          | Шрифт вивантажено                               | Шрифт вивантажено.                                                                                                                                                                          |
| `81`  | `font_changed`                           | Шрифт змінено                                   | Змінено вивантажений шрифт.                                                                                                                                                                 |
| `82`  | `font_removed`                           | Шрифт вилучено                                  | Вилучено вивантажений шрифт.                                                                                                                                                                |
| `83`  | `forced_synchronization_of_translations` | Примусова синхронізація перекладів              | Файли перекладу було примусово синхронізовано з репозиторієм.                                                                                                                               |
| `84`  | `forced_rescan_of_translations`          | Примусове повторне сканування перекладів        | Виконано примусове повторне сканування змін у файлах перекладу.                                                                                                                             |
| `85`  | `screenshot_removed`                     | Знімок екрана вилучено                          | Знімок вікна вилучено.                                                                                                                                                                      |
| `86`  | `label_added`                            | Мітку додано                                    | До рядка додано мітку.                                                                                                                                                                      |
| `87`  | `label_removed`                          | Мітку вилучено                                  | Мітку вилучено з рядка.                                                                                                                                                                     |
| `88`  | `repository_cleanup`                     | Очищення репозиторію                            | Робочу ієрархію репозиторію було очищено.                                                                                                                                                   |
| `89`  | `source_string_added_in_the_upload`      | У завантаженому файлі додано вихідний рядок     | Під час обробки вивантаженого файла було додано початковий рядок.                                                                                                                           |
| `90`  | `source_string_added_in_the_repository`  | До репозиторію додано вихідний рядок            | Під час синхронізації з репозиторієм було додано рядок.                                                                                                                                     |
| `91`  | `project_backed_up`                      | Проект збережено                                | Було створено резервну копію проєкту.                                                                                                                                                       |
| `92`  | `project_restored`                       | Проект відновлено                               | Проєкт було відновлено з резервної копії.                                                                                                                                                   |
| `93`  | `component_restored`                     | Компонент відновлено                            | Складних було відновлено з резервної копії.                                                                                                                                                 |
| `94`  | `user_edit_reverted`                     | Зміни користувача скасовано                     | Наслідки усіх позначених редагувань від користувача було скасовано.                                                                                                                         |
| `95`  | `project_setting_changed`                | Змінено налаштування проекту                    | Змінено параметр проєкту.                                                                                                                                                                   |
| `96`  | `component_setting_changed`              | Змінено налаштування компонента                 | Змінено параметр складника.                                                                                                                                                                 |
| `97`  | `user_access_changed`                    | Змінено права доступу користувача               | Змінено права доступу користувача.                                                                                                                                                          |
| `98`  | `workspace_created`                      | Робочу область створено                         | Було створено робочий простір.                                                                                                                                                              |
| `99`  | `workspace_setting_changed`              | Налаштування робочого простору змінено          | Налаштування робочого простору змінено.                                                                                                                                                     |
| `100` | `project_moved`                          | Проєкт перенесено                               | Проєкт було пересунуто до робочого простору або за його межі.                                                                                                                               |
| `101` | `remote_repository_updated`              | Оновлено віддалений репозиторій                 | Завершено оновлення віддаленого сховища.                                                                                                                                                    |
| `102` | `remote_repository_update_failed`        | Не вдалося оновити дані віддаленого репозиторію | Не вдалося оновити дані віддаленого репозиторію.                                                                                                                                            |
| `103` | `alert_dismissed`                        | Попередження пропущено                          | Попередження щодо складника було відкинуто.                                                                                                                                                 |
| `104` | `alert_reopened`                         | Попередження повторно відкрито                  | Попередження складника було повторно відкрито після зміни його контексту.                                                                                                                   |
<!-- AUTOGENERATED END: addon-parameters -->

## Налаштовування списку додатків

Список додатків налаштовується [`WEBLATE_ADDONS`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-WEBLATE_ADDONS). Щоб додати додаток, просто до цього параметра включіть абсолютну назву класу.

<a id="own-addon"></a>

## Написання додатка

Ви також можете написати власні додатки — створіть підклас від [`weblate.addons.base.BaseAddon`](https://docs.weblate.org/uk/latest/contributing/addons.md#weblate.addons.base.BaseAddon), щоб визначити метадані додатка і реалізувати зворотний виклик, який виконуватиме обробку.

#### SEE ALSO
[Розробка додатків](https://docs.weblate.org/uk/latest/contributing/addons.md)

<a id="addon-script"></a>

## Виконання скриптів з додатка

Додатками також можна скористатися для виконання зовнішніх скриптів. Цю можливість інтегровано до Weblate, але тепер вам потрібно написати певний код обгортки вашого скрипту до стану додатка.

```python
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Example pre commit script."""

from __future__ import annotations

from typing import ClassVar

from django.utils.translation import gettext_lazy

from weblate.addons.events import AddonEvent
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events: ClassVar[set[AddonEvent]] = {
        AddonEvent.EVENT_PRE_COMMIT,
    }
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long description
    verbose = gettext_lazy("Execute script before commit")
    description = gettext_lazy("This add-on executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"
```

Настанови щодо встановлення наведено у розділі [Спеціальні перевірки якості, доповнення, автоматичні пропозиції та автоматичні виправлення](https://docs.weblate.org/uk/latest/admin/customize.md#custom-addon-modules).

Скрипт виконується у поточному каталозі, яким є кореневий каталог сховища системи керування версіями для будь-якого заданого складника.

Крім того, можна скористатися такими змінними середовища:

### WL_VCS

Використана система керування версіями.

### WL_REPO

Адреса основного сховища із кодом.

### WL_PATH

Абсолютний шлях до сховища системи керування версіями.

### WL_BRANCH

Гілка сховища, яку налаштовано у поточному складнику.

### WL_FILEMASK

Маска файлів для поточного складника.

### WL_TEMPLATE

Назва файла шаблона для одномовного перекладу (може бути порожньою).

### WL_NEW_BASE

Назва файла, який використовується для створення перекладів (може бути порожньою).

### WL_FILE_FORMAT

Формат файла у поточному складнику.

### WL_LANGUAGE

Мова поточного оброблюваного перекладу (недоступна для скриптів керування на рівні складника).

### WL_PREVIOUS_HEAD

Попередній HEAD при оновленні (доступно, лише якщо запускається скрипт обробки після оновлення).

### WL_COMPONENT_SLUG

Ідентифікатор складника, який використовується для побудови адреси.

### WL_PROJECT_SLUG

Ідентифікатор проєкту, який використовується для побудови адреси.

### WL_COMPONENT_NAME

Назва складника.

### WL_PROJECT_NAME

Назва проєкту.

### WL_COMPONENT_URL

Адреса складника.

### WL_ENGAGE_URL

Адреса роботи з проєктом.

#### SEE ALSO
[Налаштовування складників](https://docs.weblate.org/uk/latest/admin/projects.md#component)

### Обробка сховища після оновлення

Можна скористатися для оновлення файлів перекладу, коли міняється джерело у основному сховищі системи керування версіями. Слід пам’ятати, що Weblate «бачить» лише файли, які внесено до системи керування версіями, тому вам доведеться внести зміни до сховища у самому скрипті.

Наприклад, з Gulp ви можете зробити це за допомогою такого коду:

```sh
#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json
```

### Обробка перекладів перед внесенням до сховища

Скористайтеся скриптом подання даних (commit) для автоматичного внесення змін до перекладу перед тим, як його буде внесено до сховища.

Передається як один параметр, що складається з назви файла поточного перекладу.

<a id="addon-activity-logging"></a>

### Журналювання діяльності додатків

Журнал діяльності додатків відстежує виконання додатків і може бути використаний для відстеження їхньої активності.

Each entry records whether processing is pending, successful, failed, or
skipped. Skipped entries include the reason the add-on did not run, such as an
incompatible component, no relevant changes, or a configured schedule that is
not due yet. A successful entry can still mean that the add-on checked its
inputs but found nothing to change.

For scope-wide add-ons that process components independently, the activity log
contains a separate entry for each component.

Журнали можна вилучати через певний проміжок часу за допомогою налаштування [`ADDON_ACTIVITY_LOG_EXPIRY`](https://docs.weblate.org/uk/latest/admin/config.md#std-setting-ADDON_ACTIVITY_LOG_EXPIRY).
