Додатки

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

Підказка

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

../_images/addons.webp

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

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

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

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

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

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

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

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

Щодня

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

Зміна події

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

weblate.autotranslate.autotranslate

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

mode

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

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

suggest

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

translate

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

fuzzy

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

q

Запит

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

auto_source

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

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

others

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

mt

Машинний переклад

component

Складник

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

engines

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

threshold

Поріг оцінки

Перемикачі:

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

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

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

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

Added in version 4.4.

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

weblate.cleanup.blank

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

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

Перемикачі:

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

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

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

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

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

weblate.cleanup.generic

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

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

Перемикачі:

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

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

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

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

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

weblate.consistency.languages

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

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

Перемикачі:

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

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

Примітка

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

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

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

Підказка

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

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

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

weblate.discovery.discovery

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

match

Регулярний вираз для зіставлення файлів перекладу

file_format

Формат файлу

name_template

Налаштувати назву складника

base_file_template

Визначити назву основного файлу для одномовного перекладу

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

new_base_template

Визначити основний файл для нового перекладу

Імʼя файлу, використане для створення нових перекладів. Для gettext виберіть pot-файл.

intermediate_template

Проміжний мовний файл

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

language_regex

Фільтр мов

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

copy_addons

Клонувати додатки з основного складника до нових

remove

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

confirm

Я підтверджую, що всі вище наведені збіги виглядають правильними

Перемикачі:

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

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

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

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

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

{{ 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 у полі Сховище з джереламиOperationsSettingsVersion control system) кожного відповідного компонента. Це також економить час на налаштування та системні ресурси.

Підказка

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

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

Щоб новий компонент було виявлено, він повинен містити файл, що відповідає шаблону base_file_template та принаймні один файл з назвою, що відповідає шаблону match – тобто компонент повинен містити файл базової мови та принаймні один існуючий переклад. В іншому випадку він буде проігноровано.

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

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

weblate.flags.bulk

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

q

Запит

state

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

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

-1

Не змінювати

10

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

20

Перекладено

30

Схвалено

add_flags

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

remove_flags

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

add_labels

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

remove_labels

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

Перемикачі:

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

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

Приклади:

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

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

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

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

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

Дивись також

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

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

Added in version 4.11.

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

weblate.generate.prefill

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

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

Перемикачі:

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

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

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

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

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.

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

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

weblate.gettext.authors

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

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

Перемикачі:

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

Оновлює коментар у заголовку файла PO так, щоб до нього було включено імена перекладачів та роки перекладу.

Заголовок файла PO виглядатиме якось так:

# Michal Čihař <michal@weblate.org>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

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

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

weblate.gettext.configure

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

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

Перемикачі:

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

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

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

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

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

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

weblate.gettext.linguas

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

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

Перемикачі:

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

Оновлює файл LINGUAS, коли додано новий переклад.

Генерувати 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, забезпечуючи:

  • Нові рядки, які можна перекладати, з’являються всіма мовами

  • Вилучені рядки позначено як застарілі

  • Змінені рядки позначені як такі, що потребують перевірки (нечіткі)

Більшість параметрів командного рядка msgmerge можна налаштувати через конфігурацію параметрів формату файлу.

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

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

weblate.git.squash

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

squash

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

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

all

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

language

Для мови

file

Для файлу

author

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

append_trailers

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

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

commit_message

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

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

Перемикачі:

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

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

Підказка

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

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

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

  • Для мови

  • Для файлу

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

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

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

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

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

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

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

Форматувати файл властивостей 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

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

events

Події зміни

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

0

Ресурс оновлено

1

Переклад завершено

2

Переклад змінено

3

Коментар додано

4

Додано пропозицію

5

Додано переклад

6

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

7

Пропозицію прийнято

8

Пропозицію завернуто

9

Пропозицію завантажено

13

Додано початковий рядок

14

Складник заблоковано

15

Складник розблоковано

17

Записано зміни

18

Зміни записано до сховища

19

Відновлено початковий стан сховища

20

Сховища об’єднано

21

Зміни зі сховища перенесено

22

Не вдалося об’єднати сховища

23

Не вдалося перенести зміни зі сховища

24

Не вдалося обробити дані

25

Переклад вилучено

26

Вилучено пропозицію

27

Переклад замінено

28

Не вдалося записати зміни до сховища

29

Вилучено пропозицію під час очищення

30

Змінено джерельний рядок

31

Додано рядок

32

Змінено пакетний стан

33

Змінено видимість

34

Додано користувача

35

Вилучено користувача

36

Переклад затверджено

37

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

38

Складник вилучено

39

Проєкт вилучено

41

Проєкт перейменовано

42

Складник перейменовано

43

Пересунуто складник

45

Долучився учасник

46

Оприлюднено оголошення

47

Надіслано попередження

48

Додано мову

49

Надіслано запит щодо мови

50

Створено проєкт

51

Створено складник

52

Запрошено користувача

53

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

54

Замінено файл перекладу вивантаженням

55

Змінено умови ліцензування

56

Ліцензійна угода співучасника змінена

57

Додано знімок екрана

58

Знімок вивантажено

59

Рядок оновлено у репозиторії

60

Додаток встановлено

61

Змінено налаштування додатка

62

Додаток вилучено

63

Вилучено рядок

64

Вилучено коментар

65

Вирішено коментар

66

Оновлено пояснення

67

Вилучено категорію

68

Перейменовано категорію

69

Пересунуто категорію

70

Не вдалося зберегти рядок

71

Рядок додано до репозиторія

72

Рядок оновлено під час завантаження

73

Рядок додано під час завантаження

74

Переклад оновлено після завантаження джерела

75

Переклад складника завершено

76

Застосовано примусову перевірку

77

Розповсюджена зміна

78

Файл завантажено

79

Додаткові прапорці оновлено

80

Шрифт вивантажено

81

Шрифт змінено

82

Шрифт вилучено

83

Примусова синхронізація перекладів

84

Примусове повторне сканування перекладів

Перемикачі:

Зміна події

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

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

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

Підказка

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

Дієскрипт

Added in version 5.11.

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

weblate.webhook.webhook

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

webhook_url

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

secret

Ключ

Рядок, закодований у Base64

events

Події зміни

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

0

Ресурс оновлено

1

Переклад завершено

2

Переклад змінено

3

Коментар додано

4

Додано пропозицію

5

Додано переклад

6

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

7

Пропозицію прийнято

8

Пропозицію завернуто

9

Пропозицію завантажено

13

Додано початковий рядок

14

Складник заблоковано

15

Складник розблоковано

17

Записано зміни

18

Зміни записано до сховища

19

Відновлено початковий стан сховища

20

Сховища об’єднано

21

Зміни зі сховища перенесено

22

Не вдалося об’єднати сховища

23

Не вдалося перенести зміни зі сховища

24

Не вдалося обробити дані

25

Переклад вилучено

26

Вилучено пропозицію

27

Переклад замінено

28

Не вдалося записати зміни до сховища

29

Вилучено пропозицію під час очищення

30

Змінено джерельний рядок

31

Додано рядок

32

Змінено пакетний стан

33

Змінено видимість

34

Додано користувача

35

Вилучено користувача

36

Переклад затверджено

37

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

38

Складник вилучено

39

Проєкт вилучено

41

Проєкт перейменовано

42

Складник перейменовано

43

Пересунуто складник

45

Долучився учасник

46

Оприлюднено оголошення

47

Надіслано попередження

48

Додано мову

49

Надіслано запит щодо мови

50

Створено проєкт

51

Створено складник

52

Запрошено користувача

53

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

54

Замінено файл перекладу вивантаженням

55

Змінено умови ліцензування

56

Ліцензійна угода співучасника змінена

57

Додано знімок екрана

58

Знімок вивантажено

59

Рядок оновлено у репозиторії

60

Додаток встановлено

61

Змінено налаштування додатка

62

Додаток вилучено

63

Вилучено рядок

64

Вилучено коментар

65

Вирішено коментар

66

Оновлено пояснення

67

Вилучено категорію

68

Перейменовано категорію

69

Пересунуто категорію

70

Не вдалося зберегти рядок

71

Рядок додано до репозиторія

72

Рядок оновлено під час завантаження

73

Рядок додано під час завантаження

74

Переклад оновлено після завантаження джерела

75

Переклад складника завершено

76

Застосовано примусову перевірку

77

Розповсюджена зміна

78

Файл завантажено

79

Додаткові прапорці оновлено

80

Шрифт вивантажено

81

Шрифт змінено

82

Шрифт вилучено

83

Примусова синхронізація перекладів

84

Примусове повторне сканування перекладів

Перемикачі:

Зміна події

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

Корисне навантаження запиту відповідає схемі Weblate Messaging. Опис OpenAPI також можна знайти за адресою /api/docs/. Приклад тіла запиту:

{
   "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. Це гарантує автентичність та цілісність запиту вебхука.

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

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

Added in version 4.15.

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

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

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

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

Список додатків налаштовується 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) для автоматичного внесення змін до перекладу перед тим, як його буде внесено до сховища.

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

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

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

Журнали можна вилучати через певний проміжок часу за допомогою налаштування ADDON_ACTIVITY_LOG_EXPIRY.