Додатки

Доповнення надають способи налаштування та автоматизації робочого процесу перекладу. Адміністратори можуть додавати та керувати доповненнями з меню Operations ↓ Add-ons кожного відповідного проєкту перекладу або компонента. Доповнення також можна встановити на весь сайт у Інтерфейс керування.

Підказка

Ви також можете налаштувати додатки за допомогою настанов з розділів API, DEFAULT_ADDONS або install_addon.

Додатки, для яких увімкнено ручне запускання, можна запускати через панель керування додатками або за допомогою 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 Область команд and Обмежений доступ.

../_images/addons.webp

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

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

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

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

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

  • Рядки змінюються в репозиторії.

  • Додається рядок.

  • Додано новий переклад.

Щодня

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

Зміна події

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AI quality evaluation

Ідентифікатор додатка:

weblate.ai.quality

Налаштування:

service

Evaluation service

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

anthropic

Anthropic

openai

OpenAI

mistral

Mistral

ollama

Ollama

azure-openai

Azure OpenAI

q

Запит

interval

Evaluation frequency

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

disabled

Вимкнено

daily

Щодня

weekly

Щотижня

monthly

Щомісячно

on_change

Evaluate translation changes

on_update

Evaluate repository updates

Перемикачі:

Установка надбудови, Оновлення компонентів, Щодня, Зміна події, Ручний спусковий механізм

Evaluates existing translations using an LLM and records quality checks.

This add-on evaluates existing translations using an LLM service configured under Автоматичні пропозиції. 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 Додатки permissions and validation.

Automation

Added in version 2026.10.

Ідентифікатор додатка:

weblate.automation.automation

Налаштування:

workflow

Процес

Enter an automation definition as YAML or JSON.

Перемикачі:

Оновлення компонентів, Щодня, Зміна події, Ручний спусковий механізм, Репозиторій після фіксації, Репозиторій post-push, Постоновлення сховища

Runs ordered translation operations with conditions and branches.

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.

Дивись також

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

Ідентифікатор додатка:

weblate.autotranslate.autotranslate

Налаштування:

mode

Режим автоматичного перекладу

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

suggest

Додати як пропозицію

translate

Додати як переклад

fuzzy

Додати як такі, що потребують редагування

approved

Додати як схвалений переклад

q

Запит

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

auto_source

Джерело автоматизованих перекладів

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

others

Інші складники перекладу

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

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

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

threshold

Поріг оцінки

Перемикачі:

Установка надбудови, Оновлення компонентів, Щодня, Зміна події

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

To control translation order, use the Automation add-on with a separate action for each pass. Follow the Apply translation memory before machine translation cookbook example to apply local translation memory first and send only the remaining strings to a machine translation service. Selecting multiple engines here uses Пріоритет послуг машинного перекладу та пам’яті перекладів; installation order of separate add-ons does not define an execution sequence.

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

Added in version 4.2.

Ідентифікатор додатка:

weblate.cdn.cdnjs

Налаштування:

threshold

Порогове значення перекладу

Відсоток перекладених рядків, який має бути присутнім для включення перекладу.

css_selector

Вибір CSS

Засіб вибору CSS для виявлення придатних до локалізації елементів.

cookie_name

Назва куки мови

Назва куки, яка зберігатиме налаштування мови.

files

Видобути рядки з файлів HTML

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

Перемикачі:

Установка надбудови, Щодня, Репозиторій після фіксації, Стан сховища після видалення, Постоновлення сховища

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

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

Створює унікальну адресу для вашого складника, яку ви можете включати до сторінок HTML для їхньої локалізації. Див. Переклад HTML і JavaScript за допомогою CDN Weblate, щоб дізнатися більше.

Примітка

Для цього додатка потрібні додаткові налаштування на сервері Weblate. LOCALIZE_CDN_PATH налаштовує місце, куди буде записано створені файли (у файловій системі), а LOCALIZE_CDN_URL визначає, де їх буде оброблено (адресу). Обслуговування файлів відбувається не на самому Weblate — його слід налаштувати зовні (типово, за допомогою служби CDN).

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

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

Added in version 2026.5.

Ідентифікатор додатка:

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 локалізації for secure serving guidance.

Kotlin SDK CDN

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.

Перемикачі:

Установка надбудови, Оновлення компонентів, Щодня, Репозиторій після фіксації, Стан сховища після видалення, Постоновлення сховища

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

Попередження

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 and 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 Маркери доступу для кожного проекту. 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 for the request and response format.

For Gradle plugin and library setup, see Kotlin SDK for Android.

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. Configure the server to deny access to .kotlin-sdk-staging as described in CDN локалізації 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.

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.

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

Added in version 4.4.

Ідентифікатор додатка:

weblate.cleanup.blank

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Репозиторій після фіксації, Постоновлення сховища

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

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

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

Ідентифікатор додатка:

weblate.cleanup.generic

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Постоновлення сховища, Попередня фіксація сховища

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

Для форматів, що містять додаткові дані, окрім рядків перекладу (зокрема Файли HTML, Файли RC Windows та Формат OpenDocument), також синхронізує файл перекладу із базовим файлом.

For a one-time cleanup of a single translation file, use Cleanup unused in Супровід репозиторія on that translation instead of installing the add-on.

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

Ідентифікатор додатка:

weblate.consistency.languages

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Щодня, Репозиторій після додавання

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

Примітка

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

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

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

Підказка

Автоматичний переклад нових доданих рядків за допомогою Автоматичний переклад.

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

Ідентифікатор додатка:

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

Формат файлу

Формат файлу

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

Видалити складники для файлів, яких не існує

Перемикачі:

Установка надбудови, Постоновлення сховища

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

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 }}

Нетипова група відповідності на основі формального виразу

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

../_images/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

Підказка

Додаток для виявлення компонентів використовує Внутрішні адреси Weblate. Це зручний спосіб спільного використання налаштувань VCS між кількома компонентами. Пов’язані компоненти використовують локальний репозиторій основного компонента, налаштованого шляхом заповнення weblate://project/main-component у полі Сховище з джерелами (у Operations ↓ Settings ↓ Version control system) кожного відповідного компонента. Це також економить час на налаштування та системні ресурси.

Підказка

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

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

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. Події зміни для вмикання

events

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

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

Перемикачі:

Зміна події

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

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 Вибрані події зміни 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

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

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

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

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

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

{
  "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"]
}

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

{
  "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"
}

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

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

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

{
  "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"]
}

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

{
  "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"]
}

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

Ідентифікатор додатка:

weblate.flags.bulk

Налаштування:

q

Запит

state

Стан для встановлення

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

-1

Не змінювати

10

Потребує редагування

11

Потребує редагування (Потребує переписання)

12

Потребує редагування (Потребує перевірки)

20

Перекладено

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

Перемикачі:

Установка надбудови, Оновлення компонентів

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

Приклади:

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

Запит щодо пошуку

NOT has:label

Мітки для додавання

recent

Позначення всіх рядків журналу змін Файли метаданих крамниці програм придатними лише для читання

Запит щодо пошуку

language:en AND key:changelogs/

Додати наступні прапорці перекладу

read-only

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

Запит щодо пошуку

source:r"^\`\`[.a-zA-Z0-9_-]*\`\`$" AND language:en

Додати наступні прапорці перекладу

read-only

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

Ідентифікатор додатка:

weblate.flags.same_edit

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

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

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

Підказка

Можливо, ви також захочете зробити строгішою перевірку Переклад не змінено, додавши до Прапорці перекладу прапорець strict-same.

Дивись також

Стани перекладу

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

Ідентифікатор додатка:

weblate.flags.source_edit

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

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

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

Дивись також

Стани перекладу

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

Ідентифікатор додатка:

weblate.flags.target_edit

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

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

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

Дивись також

Стани перекладу

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

Ідентифікатор додатка:

weblate.flags.target_repo_update

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

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

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

Дивись також

Стани перекладу

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

Added in version 4.18.

Ідентифікатор додатка:

weblate.generate.fill_read_only

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Оновлення компонентів, Щодня

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

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

Ідентифікатор додатка:

weblate.generate.generate

Налаштування:

scope

Output scope

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

translation

One file per translation

component

One file per component

filename

Назва створеного файла

template

Вміст створеного файлу

Перемикачі:

Установка надбудови, Оновлення компонентів, Репозиторій після додавання, Стан сховища після видалення, Попередня фіксація сховища

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

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

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

Назва створеного файла

locale/{{ language_code }}.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:

[
{% 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:

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.

Дивись також

Розмітка шаблонів

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

Added in version 4.11.

Ідентифікатор додатка:

weblate.generate.prefill

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Оновлення компонентів, Щодня

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

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

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

Added in version 4.5.

Ідентифікатор додатка:

weblate.generate.pseudolocale

Налаштування:

source

Початкові рядки

target

Цільовий переклад

Усі рядки у цьому перекладі буде перезаписано

prefix

Доданий статичний текст

var_prefix

Додано на початку змінний текст

suffix

Додано статичний текст

var_suffix

Доданий змінний текст

var_multiplier

Змінний текстовий множник

Скільки разів повторювати змінний текст залежно від довжини вихідного рядка.

include_readonly

Включити рядки лише для читання

Перемикачі:

Установка надбудови, Оновлення компонентів, Щодня

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

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

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

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

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

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

Підказка

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

Підказка

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

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

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

Ідентифікатор додатка:

weblate.gettext.configure

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Щодня, Репозиторій після додавання, Стан сховища після видалення

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

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

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

Removed in version 5.13: Замінено на Параметри формату файлу.

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

Added in version 5.17.

Ідентифікатор додатка:

weblate.gettext.django

Налаштування:

interval

Частота оновлення

Як часто додаток повинен оновлювати файл POT під час оновлення компонента.

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

daily

Щодня

weekly

Щотижня

monthly

Щомісячно

normalize_header

Нормалізувати заголовок POT

Оновлює заголовки gettext і замінює коментарі-шаблони POT.

location_mode

Розташування у джерелі

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

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

file

Використовувати параметри формату файлів

keep

Видобути дані щодо розташування до файла POT

omit

Не видобувати дані щодо розташування

Перемикачі:

Установка надбудови, Ручний спусковий механізм, Постоновлення сховища

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

This add-on updates the template configured in Шаблон для нових перекладів. 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) 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.

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

Ідентифікатор додатка:

weblate.gettext.linguas

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Щодня, Репозиторій після додавання, Стан сховища після видалення

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

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

Added in version 5.17.

Ідентифікатор додатка:

weblate.gettext.meson

Налаштування:

interval

Частота оновлення

Як часто додаток повинен оновлювати файл POT під час оновлення компонента.

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

daily

Щодня

weekly

Щотижня

monthly

Щомісячно

normalize_header

Нормалізувати заголовок POT

Оновлює заголовки gettext і замінює коментарі-шаблони POT.

location_mode

Розташування у джерелі

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

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

file

Використовувати параметри формату файлів

keep

Видобути дані щодо розташування до файла POT

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: без коментарів, усі коментарі або лише коментарі із певною міткою.

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

off

Не видобувати коментарі

all

Видобути усі коментарі

tagged

Видобути коментарі із міткою

comment_tag

Мітка коментарів

Мітка, яку буде передано xgettext для видобування коментарів при використанні режиму коментарів із мітками.

checks

Перевірки xgettext

Додаткові перевірки чинності xgettext, які слід увімкнути для видобутих повідомлень.

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

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis“

quote-unicode

quote-unicode“

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.

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

glib

„GLib

Перемикачі:

Установка надбудови, Ручний спусковий механізм, Постоновлення сховища

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

This add-on updates the template configured in Шаблон для нових перекладів. 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) 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 Шаблон для нових перекладів. 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 Шаблон для нових перекладів, 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.

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

Ідентифікатор додатка:

weblate.gettext.mo

Налаштування:

path

Шлях до згенерованого MO-файлу

Якщо не вказано, використовуватиметься розташування PO-файлу.

fuzzy

Включати рядки, які потребують редагування

Рядки, що потребують редагування (неточні), зазвичай не готові до використання як переклади.

Перемикачі:

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

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

Розташування згенерованого MO-файлу можна налаштувати, а поле для нього використовувати Розмітка шаблонів.

Примітка

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

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

Змінено в версії 5.13: Settings конфігурацію перенесено до Параметри формату файлу.

Ідентифікатор додатка:

weblate.gettext.msgmerge

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Постоновлення сховища

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

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

Added in version 5.17.

Ідентифікатор додатка:

weblate.gettext.sphinx

Налаштування:

interval

Частота оновлення

Як часто додаток повинен оновлювати файл POT під час оновлення компонента.

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

daily

Щодня

weekly

Щотижня

monthly

Щомісячно

normalize_header

Нормалізувати заголовок POT

Оновлює заголовки gettext і замінює коментарі-шаблони POT.

location_mode

Розташування у джерелі

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

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

file

Використовувати параметри формату файлів

keep

Видобути дані щодо розташування до файла POT

omit

Не видобувати дані щодо розташування

filter_mode

Фільтрування

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

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

none

Немає

weblate_docs

Документації Weblate

Перемикачі:

Установка надбудови, Ручний спусковий механізм, Постоновлення сховища

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

This add-on updates the template configured in Шаблон для нових перекладів. 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) 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.

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

Added in version 5.17.

Ідентифікатор додатка:

weblate.gettext.xgettext

Налаштування:

interval

Частота оновлення

Як часто додаток повинен оновлювати файл POT під час оновлення компонента.

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

daily

Щодня

weekly

Щотижня

monthly

Щомісячно

normalize_header

Нормалізувати заголовок POT

Оновлює заголовки gettext і замінює коментарі-шаблони POT.

location_mode

Розташування у джерелі

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

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

file

Використовувати параметри формату файлів

keep

Видобути дані щодо розташування до файла POT

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: без коментарів, усі коментарі або лише коментарі із певною міткою.

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

off

Не видобувати коментарі

all

Видобути усі коментарі

tagged

Видобути коментарі із міткою

comment_tag

Мітка коментарів

Мітка, яку буде передано xgettext для видобування коментарів при використанні режиму коментарів із мітками.

checks

Перевірки xgettext

Додаткові перевірки чинності xgettext, які слід увімкнути для видобутих повідомлень.

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

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis“

quote-unicode

quote-unicode“

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.

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

patterns

Шаблони вихідних файлів

potfiles

Маніфест POTFILES

language

xgettext: мова

Мова програмування, яка передається до xgettext, наприклад Python або C. Не заповнюйте, щоб xgettext визначив мову за суфіксом назв файлів.

source_patterns

Шаблони вихідних файлів

Шаблони пошуку, відокремлені символами нового рядка, що відносяться до репозиторія, для файлів, які потрібно видобути за допомогою xgettext.

potfiles_path

Шлях до POTFILES

Відносний шлях до POTFILES або POTFILES.in у репозиторії. Записи інтерпретуються відносно кореневого каталогу репозиторія. Якщо файл POTFILES.skip розміщений поруч із маніфестом, він виключає вказані в ньому файли з розпакування.

Перемикачі:

Установка надбудови, Ручний спусковий механізм, Постоновлення сховища

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

This add-on updates the template configured in Шаблон для нових перекладів. 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) 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:

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) 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.

Дивись також

GNU gettext ITS rules and locating rules.

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

Ідентифікатор додатка:

weblate.git.squash

Налаштування:

squash

Сполучення подань

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

all

Всі подання в одне

language

Для мови

file

Для файлу

author

Для кожного автора

author-language

Per author and language

append_trailers

Дописати кінцевики для обʼєднаного повідомлення про внесок

Рядки-кінцевики подібні до заголовків повідомлень електронної пошти за RFC 822. Їх дописують в кінці повідомлення про внесок у довільній формі, наприклад, «Co-authored-by: …».

commit_message

Повідомлення щодо подання

Це повідомлення про внесок буде використано замість поєднаних повідомлень про внески з обʼєднаних внесків.

Перемикачі:

Установка надбудови, Репозиторій після фіксації

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

Підказка

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

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

  • Всі подання в одне

  • Для мови

  • Для файлу

  • Для кожного автора

  • Per author and language

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

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

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

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

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

Removed in version 5.13: Замінено на Параметри формату файлу.

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

Added in version 5.17.

Ідентифікатор додатка:

weblate.hosted.reset

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Щодня

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

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

Ідентифікатор додатка:

weblate.properties.sort

Налаштування:

case_sensitive

Дозволити сортування ключів з урахуванням регістру

Перемикачі:

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

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

  • Встановлює усюди символи нового рядка Unix.

  • Встановлює форматування керівних послідовностей Unicode (якщо такі є) з використанням великих літер.

  • Вилучає порожні рядки і коментарі.

  • Упорядковує рядки за ключовими значеннями.

  • Відкидає рядки-повтори.

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

Ідентифікатор додатка:

weblate.removal.comments

Налаштування:

age

Дні для збереження

Перемикачі:

Установка надбудови, Щодня

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

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

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

Ідентифікатор додатка:

weblate.removal.suggestions

Налаштування:

age

Дні для збереження

votes

Поріг голосування

Поріг для видалення. Залиште поле порожнім, щоб видаляти пропозиції незалежно від кількості голосів. Це поле не діє, якщо голосування вимкнено.

Перемикачі:

Установка надбудови, Щодня

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

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

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

Ідентифікатор додатка:

weblate.resx.update

Налаштування:

Цей додаток не має налаштувань.

Перемикачі:

Установка надбудови, Постоновлення сховища

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

Підказка

Скористайтеся Очищення файлів перекладу, якщо ви хочете лише вилучити застарілі переклади.

Слак Вебхуки

Added in version 5.12.

Ідентифікатор додатка:

weblate.webhook.slack

Налаштування:

webhook_url

Адреса дієскрипту

event_filter

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

Choose which change events should trigger this add-on. Події зміни для вмикання

events

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

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

Перемикачі:

Зміна події

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

Попередження

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

Підказка

Щоб отримати URL-адресу вебхука, виконайте кроки, описані в документації до Slack Incoming Webhooks.

Дієскрипт

Added in version 5.11.

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

Ідентифікатор додатка:

weblate.webhook.webhook

Налаштування:

webhook_url

Адреса дієскрипту

secret

Секрет вебхука

Секрет стандартних вебхуків — це рядок, закодований у base64.

event_filter

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

Choose which change events should trigger this add-on. Події зміни для вмикання

events

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

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

Перемикачі:

Зміна події

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

The request payload complies with the Weblate Messaging schema. The action field uses the action name listed in Вибрані події зміни. The OpenAPI description can also be found at /api/docs/. Sample request body:

{
   "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"
}

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

{
   "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"
   ]
}

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

{
   "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 або реалізацією «Стандартної специфікації вебхуків».

The Автоматичний переклад 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.

The Виявлення складників 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.

The Дієскрипт and Слак Вебхуки 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.

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

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

Removed in version 2026.10: Replaced by 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 lists and weblate.gettext.authors entries from DEFAULT_ADDONS. Configure Contributor comments instead.

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

Added in version 4.15.

Removed in version 5.13: Замінено на Параметри формату файлу.

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

Removed in version 5.13: Замінено на Параметри формату файлу.

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

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

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

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

Формат файлу

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

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

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

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

content

Події вмісту перекладу

all

Усі події зміни

custom

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

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

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

Попередження повторно відкрито

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

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

Список додатків налаштовується WEBLATE_ADDONS. Щоб додати додаток, просто до цього параметра включіть абсолютну назву класу.

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

Ви також можете написати власні додатки — створіть підклас від weblate.addons.base.BaseAddon, щоб визначити метадані додатка і реалізувати зворотний виклик, який виконуватиме обробку.

Дивись також

Розробка додатків

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

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

# 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"

Настанови щодо встановлення наведено у розділі Спеціальні перевірки якості, доповнення, автоматичні пропозиції та автоматичні виправлення.

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

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

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

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

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

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

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

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

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

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

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

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

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

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.