Referencia automatizácie a kuchárska kniha

Doplnok Automatizácia spúšťa deklaratívne pracovné postupy pomocou existujúcich operácií Weblate. Táto stránka opisuje štruktúru pracovného postupu, spúšťače, podmienky a akcie. Úplné príklady nájdete v Kuchárska kniha, vrátane Aplikujte prekladovú pamäť pred strojovým prekladom.

Definícia pracovného postupu

Added in version 2026.10.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

version

Áno

1

triggers

Áno

Zoznam (objekt); maximálne 100 položiek; jedinečné položky

conditions

Nie

Zoznam (podmienka); maximálne 100 položiek

actions

Áno

Zoznam (akcia); maximálne 100 položiek

Edit YAML in the add-on’s Workflow field. JSON input is also accepted. Saved workflows reopen as YAML with version, triggers, optional conditions, and actions in that order. Comments and original formatting are not retained. The API accepts the same structure as the workflow member of configuration. The JSON Schema describes this representation independently of the editor. Unknown keys are rejected.

version identifikuje verziu schémy pracovného postupu, nie vydanie Weblate. V triggers uveďte udalosti, na ktoré sa máte prihlásiť, v conditions podmienky, ktoré musia prejsť pred vykonaním akejkoľvek akcie, a v actions zoradené operácie. Vynechanie conditions je ekvivalentné prázdneho zoznamu. Prázdne triggers umožňuje iba manuálne vykonanie; prázdne actions nevykonáva žiadne operácie.

Doslovné nastavenia a výrazy

Nastavenia akcií sú doslovné hodnoty YAML/JSON. Iba hodnota value podmienky expression sa vyhodnocuje ako CEL. Dotazy, ID enginov, štítky a iné nastavenia nepodporujú výrazy CEL, substitúciu premenných ani syntax šablón, ako napríklad {{ unit.id }}. Dotaz obsahujúci túto syntax sa nerozvinie. Na výber akcií s rôznymi pevnými nastaveniami použite Vybrať. Akcie vyberajú reťazce pomocou svojho rozsahu scope a voliteľného dotazu.

Rozsah reťazca

Set scope on an action to choose its starting selection. component is the default and retains the existing component-wide behavior. trigger uses the unit affected by a change event; a source-unit change selects its corresponding target-language units. result:ID uses units actually changed or given new suggestions by an earlier action with that id. For an AI quality action, it uses units successfully evaluated by that action. For a select action, it uses the units selected by that action. Set settings.q to filter the selected units further. For trigger and result:ID, omitting q selects the whole scope.

Napríklad akciu prekladu s id: machine a scope: trigger môže nasledovať hromadná úprava s scope: result:machine. Druhá akcia vidí iba jednotky ovplyvnené prvou. Úpravy na úrovni zdroja môžu vo väčšej akcii vybrať zodpovedajúce cieľové jednotky.

Workflows using scope: trigger can declare only change triggers. A change without a unit fails if execution reaches that action. Manual execution and preview require a change containing a unit before starting such workflows. A result:ID action fails if its referenced action did not run, for example because a branch was skipped. Preview can follow result scopes created by select actions when their selections are known. Other result scopes are conditional because earlier actions have not run.

Výbery sa uchovávajú iba počas aktívneho behu. Protokol aktivity zaznamenáva počty ovplyvnených a počty jednotiek v rozsahu (pred filtrom q), ale neukladá úplné zoznamy ID jednotiek.

Kontext vykonávania

Podmienky CEL majú prístup k nasledujúcim poliam. Kontext sa zachytí pri naplánovaní behu a medzi akciami sa mení iba results. Konkrétne unit.state je snímka; na aktuálny stav databázy použite matching_strings. Časové pečiatky sú reťazce, nie objekty časových pečiatok CEL.

Polia kontextu

Pole

Typ

Význam

component.id

celé číslo

ID cieľového komponentu; vždy prítomné.

component.slug

reťazec

Slug cieľového komponentu.

component.project

reťazec

Slug projektu, nie objekt projektu.

component.category

reťazec alebo null

Slug kategórie; null pre nekategorizovaný komponent.

language.id

celé číslo

ID jazyka udalosti, keď je jazyk dostupný.

language.code

reťazec

Kód jazyka udalosti, keď je jazyk dostupný.

unit.id

celé číslo

ID jednotky udalosti, keď je jednotka dostupná.

unit.state

celé číslo

Zachytený stav reťazca; pozri Stavy reťazca.

unit.source

reťazec

Zdrojový text, orezaný na 4 096 znakov.

unit.target

reťazec

Cieľový text, orezaný na 4 096 znakov.

change.id

celé číslo

ID spúšťajúcej zmeny, keď je zmena dostupná.

change.action

celé číslo

Numerická hodnota ActionEvents, nie názov udalosti malými písmenami.

change.timestamp

reťazec

Časová pečiatka zmeny vo formáte ISO 8601 s posunom časového pásma.

actor.id

celé číslo

Zaznamenané ID aktéra, keď je aktér dostupný.

actor.username

reťazec

Zaznamenané používateľské meno aktéra.

trigger.name

reťazec

Identifikátor spúšťača, ako napríklad change, daily alebo manual.

trigger.timestamp

reťazec

Časová pečiatka zmeny alebo čas naplánovania pre iné spúšťače; ISO 8601 s posunom časového pásma.

trigger.revision

reťazec alebo null

Lokálna revízia komponentu zaznamenaná pri naplánovaní; null, ak nie je dostupná.

trigger.unit_ids

zoznam celých čísel alebo null

Momentálne zoznam s jednou položkou, keď zmena odkazuje na jednotku; inak null.

trigger.source_unit_ids

zoznam celých čísel alebo null

ID zdrojových jednotiek zodpovedajúce trigger.unit_ids; inak null.

results

objekt

Zpočiatku prázdny; mapuje ID akcií na výstupy úspešných operácií.

Dostupnosť závisí od spúšťača:

  • change poskytuje change. Poskytuje unit a language iba vtedy, keď na ne zmena odkazuje, a actor z používateľa zmeny alebo, ak chýba, z jej autora. Ľubovoľný z týchto voliteľných objektov môže byť null.

  • manual poskytuje actor, keď je iniciovaný používateľom cez rozhranie alebo API. Iné manuálne vstupné body nemusia mať aktéra. change, unit a language sú null.

  • daily, component_update, post_update, post_commit a post_push majú null pre actor, change, unit a language.

  • Náhľad s ID zmeny používa kontext danej zmeny a trigger.name na change. Bez neho používa manuálny kontext.

Keď je objekt null, nemožno priamo pristupovať k jeho podpoliam. Napríklad použite unit != null && unit.state == 10 alebo language != null && language.code == "de". Uprednostnite typované podmienky unit_state, language a change_action, keď je to možné; riešia za vás chýbajúci kontext a konverziu názvu udalosti. Pozri Preložiť po zmenách zdroja.

Identita a oprávnenia pri vykonávaní

Bežné oprávnenie na správu doplnkov autorizuje konfiguráciu, náhľad a manuálne vykonanie. actor zaznamenáva, kto spôsobil udalosť; nevyberá účet alebo oprávnenia použité na vykonanie akcií. Zmena podmienky na actor len určuje, či sa pracovný postup spustí.

Operácie sa vykonávajú s autoritou doplnku v rámci jeho nakonfigurovaného rozsahu, nie s jednotlivými prekladateľskými oprávneniami spúšťajúceho používateľa. Automatický preklad dostáva bota doplnku Automatizácia ako svojho vykonávacieho používateľa a neuplatňuje kontrolu oprávnení na operácie pre jednotlivých používateľov. Opätovne použité preklady si môžu zachovať pôvodné priradenie autora. Hromadná úprava volá zdieľanú operáciu bez používateľa, namiesto vydávania sa za zaznamenaného aktéra. Kontext aktivity si ponecháva aktéra oddelene od priradenia zmeny prekladu.

Changes made during execution record an automation origin with the installed add-on ID and execution-log ID in História prekladu. This also covers background tasks and repository processing started by the automation. The identifiers remain available after an add-on or its execution log is removed; workflow settings are not copied into change history.

Automatizácie projektu, kategórie a celej inštancie zahŕňajú kompatibilné obmedzené komponenty v ich nakonfigurovanom rozsahu. Akcie automatického prekladu môžu používať spôsobilé obmedzené zdrojové komponenty, aj keď konfigurujúci administrátor nemôže tieto komponenty otvoriť priamo. Náhľad používa rovnaký administratívny rozsah a môže skontrolovať vybraný komponent a voliteľný kontext zmeny. Udeľte oprávnenie na správu doplnkov iba používateľom, ktorým dôverujete s týmto úplným rozsahom. Zmena alebo zakázanie účtu konfigurujúceho používateľa neodvolá uložený pracovný postup.

Pred vykonaním zaradeného behu Weblate skontroluje, či je doplnok stále platný a či komponent stále patrí do jeho rozsahu. Zaradená definícia a kontext udalosti sú snímky: úprava pracovného postupu po naplánovaní nezmění tento beh. Nastavenia operácií sa pri vykonaní znovu overia voči cieľovému komponentu.

Testovanie a vykonávanie

Save the workflow before using the separate Run add-on form. Inherited automations require a component ID; each submission targets one component. A change ID supplies event context and must belong to that component and match a configured change subscription. Workflows with only change triggers require a change ID. Workflows using scope: trigger also require the change to contain a string.

Preview without changes is checked by default. Select Run now with it checked to inspect conditions and planned actions. Preview neither calls translation services nor changes strings. Conditions that depend on unexecuted action results or changed strings are marked unknown, and their branches are shown as conditional. Clear the checkbox to schedule real execution with the same context and saved workflow. Validation errors preserve the checkbox selection; reopening the page enables preview again.

Without a change ID, execution uses manual context with no language, string, or change. With a change ID, context uses that change’s event, actor, and timestamp, and the string’s current state, not a reconstruction of its historical state. The requesting administrator is recorded separately in the activity log. Component-scoped actions still operate across the component; supplying a change does not implicitly restrict their selection. Use scope: trigger to select strings affected by that change.

The Doplnky provides equivalent preview and run operations.

Behy používajú bežné úlohy Celery a existujúce zámky operácií. Samostatné behy sa môžu prekrývať; neexistujú žiadne režimy vykonávania ani bloky paralelných akcií. Protokol aktivity zaznamenáva definíciu, kontext, podmienky, akcie a zlyhania. Chyba zastaví neskoršie akcie bez vrátenia späť dokončenej práce. Behy sa automaticky neopakujú; po vynútenom ukončení pracovníka môže zostať čakajúci protokol a musí sa preskúmať pred manuálnym spustením ďalšieho behu. Zmeny vychádzajúce z automatizácie, vrátane nadväzných úloh, nespúšťajú iné behy automatizácie.

Validácia a limity

Pracovné postupy musia obsahovať hodnoty kompatibilné s JSON s kľúčmi mapovania reťazcov. Aliasy YAML, explicitné značky, duplicitné kľúče mapovania, nekonečné čísla a natívne hodnoty dátumu/časovej pečiatky YAML sa odmietajú. Dátum dajte do úvodzoviek, ak je zamýšľaný ako reťazec. Neznáme polia sa odmietajú a ID akcií musia byť jedinečné v celom pracovnom postupe, vrátane vzájomne sa vylučujúcich vetiev. Chýbajúce povinné polia a nesprávne typy hodnôt sú chyby; napríklad state musí byť celé číslo, nie "10". Vnorené mapovania a zoznamy majú tiež obmedzenie štrukturálnej hĺbky 32.

Generované tabuľky parametrov zobrazujú limity zoznamov, požiadavky na jedinečnosť, numerické hranice a vzory reťazcov zo schémy. Obmedzenia položiek v zátvorkách platia pre každý prvok zoznamu. Nižšie uvedené limity uzlov a vnorenia v rámci celého pracovného postupu platia aj vtedy, keď je každý jednotlivý zoznam v rámci svojho limitu.

Definície sú obmedzené na 64 KiB tak vo forme odoslanej, ako aj vo forme ASCII-escapovaného JSON po aplikovaní predvolených hodnôt operácií, na 100 uzlov akcií/podmienok a osem úrovní vnorenia. Výrazy CEL sú obmedzené na 4 096 znakov a vyhodnocujú sa v pomocnom procese s dvoma sekundami času CPU a piatimi sekundami skutočného času na jedno vyvolanie. Pomocník tiež obmedzuje virtuálny adresový priestor na 512 MiB okrem macOS, kde sa neuplatňuje žiadny pamäťový limit. Pomocník zlyhá uzavreto, ak nemožno aplikovať požadovaný limit zdrojov operačného systému. Pripnutý runtime CEL poskytuje natívne kolesá (wheels); inštalácie na Linuxe vyžadujú podporovanú platformu glibc. Nie sú potrebné žiadne nastavenia runtime ani samostatná služba. Na neobmedzenú vlastnú logiku Pythonu na self-hosted inštaláciách použite Písanie doplnku.

Spúšťače

Každý spúšťač je objekt v zozname triggers pracovného postupu. Inštancia sa môže prihlásiť na odber viacerých spúšťačov. Manuálne vykonanie je vždy dostupné, aj keď manual chýba v zozname.

denný

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"daily"

Spúšťa sa pri Denne s rešpektovaním BACKGROUND_TASKS.

aktualizácia_komponentu

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"component_update"

Spúšťa sa pri Aktualizácia komponentu po aktualizácii komponentu Weblate.

po_aktualizácii

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"post_update"

Spúšťa sa pri Repozitár po aktualizácii.

po_zápise

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"post_commit"

Spúšťa sa pri Repozitár po zápise.

po_odoslaní

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"post_push"

Spúšťa sa pri Repozitár po pushi.

manuálny

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"manual"

Spúšťa sa, keď administrátor vyberie Spustiť teraz alebo požiadá o manuálne vykonanie cez Doplnky.

zmena

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

trigger

Áno

"change"

events

Áno

Zoznam (názov udalosti z Vybrané udalosti zmien); minimálne 1 položka; jedinečné položky

Subscribes to the identifiers listed in Vybrané udalosti zmien, for example translation_changed, translation_added, source_string_changed, or source_string_added_in_the_repository. translation_changed covers edits to existing translations; translation_added covers previously untranslated strings translated by a user. Uploads and automatic translation have separate events. Legacy internal names such as change and source_change remain accepted and are converted to documented identifiers when edited or saved. These identifiers distinguish edits in Weblate from uploads and repository imports; a source-edit event alone does not cover all three. Only changes associated with a component can start a run.

Podmienky

Každá podmienka v zozname musí prejsť. Falošná podmienka na úrovni pracovného postupu preskočí beh. Podmienky môžu tiež vybrať vetvu Vybrať. Podmienky týkajúce sa nedostupného jazyka, jednotky alebo kontextu zmeny vracajú false. Prázdny zoznam podmienok prejde.

výraz

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"expression"

value

Áno

reťazec; maximálna dĺžka 4096

Hodnotí value ako CEL a vyžaduje booleovský výsledok. CEL podporuje aritmetiku, porovnania, štandardné funkcie a pochopenia, ale nemôže volať Python ani pristupovať k databáze, sieti alebo súborovému systému. Výrazy môžu používať zachytený kontext vykonávania a výstupy skorších akcií, napríklad results.machine.updated > 0. Chýbajúce polia alebo chyby výrazov spôsobia zlyhanie behu.

kategória_komponentu

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"component_category"

value

Áno

reťazec; maximálna dĺžka 4096

Porovnáva slug kategórie spúšťajúceho komponentu s value.

jazyk

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"language"

value

Áno

reťazec; maximálna dĺžka 4096

Porovnáva kód jazyka udalosti s value. Toto testuje kontext spúšťača; neobmedzuje následné akcie na daný jazyk. Na obmedzenie spracúvaných reťazcov použite vyhľadávací dotaz akcie.

zhodujúce_sa_reťazce

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"matching_strings"

value

Áno

reťazec; maximálna dĺžka 4096

Prejde, keď komponent momentálne obsahuje aspoň jeden reťazec zodpovedajúci vyhľádávaciemu dotazu v value. Dotaz sa spustí pri vyhodnotení podmienky, takže môže pozorovať zmeny vykonané skoršími akciami.

akcia_zmeny

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"change_action"

value

Áno

Názov udalosti z Vybrané udalosti zmien

Porovnáva akciu spúšťajúcej zmeny s value. Použite názov udalosti malými písmenami, ako pri zmena.

stav_jednotky

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"unit_state"

value

Áno

0, 10, 11, 12, 20, 30, 100

Porovnáva zachytený stav spúšťajúcej jednotky s celočíselnou hodnotou value. Používa snímku udalosti, nie nový dotaz jednotky po skorších akciách.

a

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"and"

conditions

Áno

Zoznam (podmienka); maximálne 100 položiek

Prejde, keď prejde každá vnorená podmienka. Vyhodnocovanie sa zastaví pri prvej falošnej podmienke. Prázdny zoznam prejde.

alebo

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"or"

conditions

Áno

Zoznam (podmienka); maximálne 100 položiek

Prejde, keď prejde ľubovoľná vnorená podmienka. Vyhodnocovanie sa zastaví pri prvej pravej podmienke. Prázdny zoznam neprejde.

nie

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

condition

Áno

"not"

conditions

Áno

Zoznam (podmienka); maximálne 100 položiek

Popiera presne jednu vnorenú podmienku. Prázdne zoznamy a zoznamy obsahujúce viacero podmienok sú neplatné.

Akcie

Akcie sa vykonávajú v poradí zoznamu. Každá operácia a jej dávkové kontroly dokončia pred začatím ďalšej akcie. Akcie cielia na komponent; na ich zúženie používajte dotazy Vyhľadávanie reťazcov. Dotazy sa vyhodnocujú pri vykonaní každej akcie.

Voliteľné jedinečné ID akcií vystavujú výstapy ako results.<id>. ID začína malým písmenom a obsahuje až 64 malých písmen, číslic alebo podčiarkovníkov. Po úspešnej operácii sa jej výstup uloží v protokole aktivity a, keď má ID, v results.<id> pre neskoršie podmienky CEL. Napríklad results.memory.updated > 0 testuje, či akcia memory hlásila aktualizácie. Výstapy patria aktuálnemu behu a nezdieľajú sa s inými behmi.

Skipped and failed operations do not create result entries. Preview creates entries for select actions when it can determine their selections; other previewed operations do not. If an action might be skipped, guard access with a presence check such as has(results.memory) && results.memory.updated > 0. A failed operation records an error in the trace and stops later actions; its partial changes are not rolled back. Actions without IDs still record their outputs in the activity log.

Nižšie uvedené príklady YAML sú položky na umiestnenie do zoznamu actions pracovného postupu. Kuchárska kniha poskytuje úplné definície pracovných postupov.

Nastavenia a dotazy sa overujú voči cieľovému komponentu pred vykonaním. Pre zdedené pracovné postupy musia štítky existovať v každom cieľovom projekte a vybrané enginy musia byť tam povolené.

Select strings

Added in version 2026.11.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

action

Áno

"weblate.select"

id

Nie

reťazec; vzor ^[a-z][a-z0-9_]{0,63}$

scope

Nie

"component", "trigger", reťazec; vzor ^result:[a-z][a-z0-9_]{0,63}$

settings

Áno

objekt

settings.q

Nie

reťazec; maximálna dĺžka 4096

Polia výsledku

Názov

Povinné

Typ alebo povolené hodnoty

component

Áno

celé číslo

selected

Áno

celé číslo; minimálne 0

Use weblate.select to name a set of strings for later result:ID actions. It only reads strings. In component scope, q is required; in trigger or result scope, omit q to keep the current selection. q uses the usual Vyhľadávanie reťazcov syntax. The result contains the selected count, while the unit IDs remain available only during the run.

Napríklad pred spustením automatického prekladu vyberte z udalosti zmeny nepreložené nemecké reťazce:

- action: weblate.select
  id: changed_german
  scope: trigger
  settings:
    q: "language:de AND state:<translated"
- action: weblate.automatic_translation
  scope: result:changed_german
  settings:
    auto_source: mt
    engines: [openai]
    mode: translate

Automatický preklad

Added in version 2026.10.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

action

Áno

"weblate.automatic_translation"

id

Nie

reťazec; vzor ^[a-z][a-z0-9_]{0,63}$

scope

Nie

"component", "trigger", reťazec; vzor ^result:[a-z][a-z0-9_]{0,63}$

settings

Áno

objekt

settings.mode

Nie

"suggest", "translate", "fuzzy", "approved"

settings.q

Nie

reťazec; maximálna dĺžka 4096

settings.auto_source

Nie

"others", "mt"

settings.component

Nie

celé číslo alebo null; minimálne 1

settings.engines

Nie

Zoznam (reťazec; maximálna dĺžka 4096); maximálne 100 položiek

settings.threshold

Nie

celé číslo; minimálne 1; maximálne 100

Polia výsledku

Názov

Povinné

Typ alebo povolené hodnoty

component

Áno

celé číslo

updated

Áno

celé číslo

message

Áno

reťazec

warnings

Áno

Zoznam (reťazec; maximálna dĺžka 1024); maximálne 20 položiek

warnings_omitted

Áno

celé číslo; minimálne 0

Spúšťa Automatický preklad synchronne. auto_source: others opätovne používa preklady z iných komponentov, voliteľne obmedzené ID zdrojového component. auto_source: mt používa ID služieb v engines; prekladová pamäť a služby AI používajú rovnaký mechanizmus ako ostatní poskytovatelia.

Predvolené sú auto_source: others, mode: suggest, q: state:<translated, threshold: 80, bez obmedzenia zdrojového komponentu a prázdny zoznam enginov. Pre akciu s rozsahom vynechané q namiesto toho vyberie celý jej rozsah. Pri výbere mt poskytnite nakonfigurované ID enginov.

mode vyberá návrhy (suggest), preklady (translate), reťazce potrebujúce úpravu (fuzzy) alebo schválené preklady (approved). Schválenie sleduje efektívne nastavenia recenzie každého jazyka. threshold je minimálne skóre od 1 do 100 pre služby; každá služba má svoje vlastné maximálne skóre.

Príklad

Aplikujte zhody lokálnej prekladovej pamäte s skóre aspoň 95 na reťazce, ktoré ešte potrebujú preklad. Pred spustením tejto akcie povoľte Prekladová pamäť Weblate v cieľovom projekte.

- action: weblate.automatic_translation
  id: memory
  settings:
    auto_source: mt
    engines: [weblate-translation-memory]
    threshold: 95
    mode: translate
    q: "state:<translated"

Pozri Aplikujte prekladovú pamäť pred strojovým prekladom, aby táto fáza nasledovala vzdialenou službou prekladu.

Výstupy

component (celé číslo)

ID spracúvaného komponentu, nie voliteľného zdrojového komponentu.

updated (celé číslo)

Počet aktualizácií prekladu alebo nových návrhov hlásených naprieč jazykmi komponentu. V režime návrhov toto počíta novo vytvorené návrhy, nie reťazce, ktorých stav prekladu sa zmenil. Preklad presahujúci maximálnu dĺžku reťazca sa môže tiež stať návrhom, aj v režime prekladu. Nula znamená, že operácia neoznámila žiadne aktualizácie; sama o sebe to nie je chyba.

message (reťazec)

Ľudsky čitateľné zhrnutie dokončenia v angličtine. Namiesto parsovania tejto správy použite updated pre podmienky.

warnings (zoznam reťazcov)

Varovania hlásené automatickým prekladom, alebo prázdny zoznam, keď neboli ohlásené žiadne. Uchováva sa najviac 20 správ, každá orezaná na 1 024 znakov. Úspešná akcia môže mať stále varovania; preskúmajte ich, keď bolo preložené menej reťazcov, než sa očakávalo.

warnings_omitted (celé číslo)

Počet varovných správ vynechaných nad prvých 20. Toto nepočíta znaky odstránené z uchovaných správ.

Napríklad úspešný beh môže zaznamenať:

{
  "component": 42,
  "updated": 3,
  "message": "Automatic translation completed, 3 strings were updated.",
  "warnings": [],
  "warnings_omitted": 0
}

Neskoršia podmienka môže pristupovať k týmto poliam cez results.memory, napríklad results.memory.updated > 0 && size(results.memory.warnings) == 0.

Hodnotenie kvality AI

Added in version 2026.10.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

action

Áno

"weblate.ai_quality"

id

Nie

reťazec; vzor ^[a-z][a-z0-9_]{0,63}$

scope

Nie

"component", "trigger", reťazec; vzor ^result:[a-z][a-z0-9_]{0,63}$

settings

Áno

objekt

settings.service

Nie

reťazec; maximálna dĺžka 4096

settings.q

Nie

reťazec; maximálna dĺžka 4096

Polia výsledku

Názov

Povinné

Typ alebo povolené hodnoty

component

Áno

celé číslo

evaluated

Áno

celé číslo; minimálne 0

Evaluates existing target translations synchronously using the effective AI quality evaluation add-on. Its configured service is used automatically. An optional service asserts that the effective add-on uses that service; a mismatch stops the workflow. The optional q filters the action’s scope further; the add-on’s own query and eligibility rules still apply. Empty scoped selections make no provider requests.

Každý hodnotený reťazec je dostupný pre neskoršiu akciu result:ID, keď táto akcia má id. evaluated počíta tieto reťazce; ID jednotiek sa uchovávajú iba počas behu. Akcia zastaví neskoršie kroky, ak požiadavka zlyhá, je obmedzená rýchlosťou alebo jej odpoveď zahodená, pretože sa reťazec počas hodnotenia zmenil. Skoršie úspešné dávky si môžu ponechať svoje zistenia, takže neskorší beh ich môže znovu vyhodnotiť. Úplný pracovný postup prekladu a recenzie nájdete v Hodnoťte preklady AI pred schválením.

Hromadná úprava

Added in version 2026.10.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

action

Áno

"weblate.bulk_edit"

id

Nie

reťazec; vzor ^[a-z][a-z0-9_]{0,63}$

scope

Nie

"component", "trigger", reťazec; vzor ^result:[a-z][a-z0-9_]{0,63}$

settings

Áno

objekt

settings.q

Nie

reťazec; maximálna dĺžka 4096

settings.state

Nie

celé číslo

settings.add_flags

Nie

reťazec; maximálna dĺžka 4096

settings.remove_flags

Nie

reťazec; maximálna dĺžka 4096

settings.add_translation_flags

Nie

reťazec; maximálna dĺžka 4096

settings.remove_translation_flags

Nie

reťazec; maximálna dĺžka 4096

settings.add_labels

Nie

Zoznam (reťazec; maximálna dĺžka 4096); maximálne 100 položiek

settings.remove_labels

Nie

Zoznam (reťazec; maximálna dĺžka 4096); maximálne 100 položiek

Polia výsledku

Názov

Povinné

Typ alebo povolené hodnoty

component

Áno

celé číslo

updated

Áno

celé číslo

Používa rovnakú operáciu ako Hromadná úprava. Pre rozsah komponentu je q povinné a vyberá reťazce pomocou Vyhľadávanie reťazcov. Pre rozsahy trigger a result je q voliteľné a filtruje vybrané reťazce. state nastavuje celočíselný stav reťazca, alebo ho ponecháva nezmenený s -1 (predvolené).

Stavy reťazca

Hodnoty stavu

Hodnota

Význam

Prijaté ako cieľ hromadnej úpravy

-1

Nechať nezmenené

Áno; predvolené, nie skutočný stav jednotky

0

Prázdne

Nie

10

Potrebuje úpravu

Áno

11

Vyžaduje úpravu (vyžaduje prepísanie)

Áno

12

Vyžaduje úpravu (vyžaduje kontrolu)

Áno

20

Preložené

Áno

30

Schválené

Áno

100

Iba na čítanie

Nie

Podmienka unit_state akceptuje skutočné stavy jednotiek, vrátane 0 a 100, ale nie -1. Hromadná úprava mení iba spôsobilé upraviteľné reťazce; výber reťazca iba na čítanie ho nespraví upraviteľným.

Príznaky a štítky

Nastavenia príznakov sú reťazce obsahujúce príznaky na pridanie alebo odstránenie. Nastavenia štítkov sú zoznamy názvov štítkov. Predvolené hodnoty príznakov sú prázdne reťazce a predvolené hodnoty štítkov sú prázdne zoznamy. Príznaky a štítky zdroja ovplyvňujú všetky jazyky, rovnako ako pri doplnku hromadnej úpravy; príznaky prekladu ovplyvňujú zodpovedajúce preklady, okrem zdrojových reťazcov. Odstránenie príznaku prekladu odstráni jeho lokálne nastavenie; zdedené príznaky zostávajú účinné.

Používajte príznaky oddelené čiarkami s parametrami oddelenými dvojbodkou, napríklad add_translation_flags: "max-length:100, check-glossary". Na odstránenie parametra v príznaku uveďte jeho názov, napríklad remove_translation_flags: "max-length". Pravidlá citovania nájdete v Prispôsobenie správania pomocou príznakov a dostupné kontroly v Kontroly kvality. Štítky používajú zoznamy YAML/JSON existujúcich názvov štítkov projektu, napríklad add_labels: [needs-attention]; toto nevytvára štítok.

Príklad

Označte aktuálne preložené nemecké reťazce ako vyžadujúce úpravu, pričom ponechajte iné jazyky a schválené reťazce mimo dotazu nezmenené:

- action: weblate.bulk_edit
  id: marked_for_edit
  settings:
    q: "language:de AND state:translated"
    state: 10

Príklad podmienenej hromadnej úpravy nájdete v Spustiť akciu iba vtedy, keď fáza prekladu aktualizuje reťazce.

Výstupy

component (celé číslo)

ID spracúvaného komponentu.

updated (celé číslo)

Počet nahlásený operáciou hromadnej úpravy. Zmeny stavu, zmeny príznakov alebo štítkov zdroja a zmeny príznakov prekladu prispievajú osobitne. Keď akcia kombinuje tieto operácie, ten istý reťazec môže prispieť viac ako raz; toto nie je počet jedinečných ovplyvnených reťazcov. Zmeny príznakov a štítkov zdroja sa počítajú na zdrojový reťazec, nie raz na jazyk. Nula znamená, že operácia neurobila žiadne zmeny.

Napríklad akcia, ktorá mení iba stavy troch reťazcov, vráti:

{"component": 42, "updated": 3}

Neskoršia podmienka môže testovať results.marked_for_edit.updated > 0. Tento výstup neobsahuje ID jednotiek ani zoznam zmenených reťazcov. Neskoršia akcia musí vybrať svoje reťazce vlastným dotazom.

Sekvencia

Added in version 2026.10.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

sequence

Áno

Zoznam (akcia); maximálne 100 položiek

Zoskupuje zoradený zoznam akcií. Sekvencia dokončí pred začatím ďalšej rovnakej akcie. Môže obsahovať operácie, ďalšie sekvencie a bloky Vybrať. Neuvádza paralelné vykonávanie.

Príklad

Zoskupte dve fázy prekladu: najprv opätovne použite iné komponenty, potom aplikujte lokálnu prekladovú pamäť na reťazce, ktoré ešte potrebujú preklad.

- sequence:
    - action: weblate.automatic_translation
      id: reused
      settings:
        auto_source: others
        mode: translate
        q: "state:<translated"
    - action: weblate.automatic_translation
      id: memory
      settings:
        auto_source: mt
        engines: [weblate-translation-memory]
        threshold: 95
        mode: translate
        q: "state:<translated"

Výstupy

Sekvencia nemá výstupný objekt a neakceptuje id. Jej úspešné podradené akcie vystavujú svoje jednotlivé výstapy v zdieľanom objekte results, vrátane neskorších podradených a akcií mimo sekvencie. V tomto príklade sú tieto položky results.reused a results.memory; neexistuje kombinovaný počet aktualizácií. Zlyhajúce podradené zastaví zvyšné akcie.

Vybrať

Added in version 2026.10.

Parametre

Názov

Povinné

Typ alebo povolené hodnoty

choose

Áno

Zoznam (objekt); maximálne 100 položiek

choose[].conditions

Áno

Zoznam (podmienka); maximálne 100 položiek

choose[].sequence

Áno

Zoznam (akcia); maximálne 100 položiek

default

Nie

Zoznam (akcia); maximálne 100 položiek

Hodnotí vetvy v poradí a vykoná prvú vetvu, ktorej všetky conditions prejdu. Každá vetva vyžaduje conditions aj sequence. Neskoršie vetvy sa po zhode preskočia, aj keď je zodpovedajúca sekvencia prázdna.

Ak sa nezhoduje žiadna vetva, spustí sa default. Vynechanie default je ekvivalentné prázdneho zoznamu akcií.

Príklad

Pre komponenty v kategórii frontend označte preložené nemecké reťazce ako vyžadujúce úpravu. Ostatné komponenty použijú prázdnu predvolenú vetvu.

- choose:
    - conditions:
        - condition: component_category
          value: frontend
      sequence:
        - action: weblate.bulk_edit
          id: frontend_edit
          settings:
            q: "language:de AND state:translated"
            state: 10
  default: []

Vetvu, ktorá používa výstup skoršej akcie namiesto kategórie komponentu, nájdete v Spustiť akciu iba vtedy, keď fáza prekladu aktualizuje reťazce.

Výstupy

Blok choose nemá výstupný objekt a neakceptuje id. Iba úspešné operácie vo vybranej vetve alebo predvolenej vetve vytvárajú položky výsledkov. Podmienky vetiev a preskočené akcie sa zaznamenávajú v stope aktivity. V tomto príklade results.frontend_edit existuje iba ak sa kategória zhoduje a hromadná úprava uspeje. Neskoršia podmienka môže bezpečne skontrolovať has(results.frontend_edit) && results.frontend_edit.updated > 0. Náhľad zaznamenáva plánované alebo podmienené akcie bez vytvorenia ich výstupov.

Kuchárska kniha

Aplikujte prekladovú pamäť pred strojovým prekladom

Použite samostatné akcie automatického prekladu, aby ste dali jednej zdrojovej prioritu pred druhou. Tento príklad najprv aplikuje zhody lokálnej prekladovej pamäte s skóre aspoň 95, potom požiada DeepL o preklad iba reťazcov, ktoré ešte potrebujú preklad.

Povoľte Prekladová pamäť Weblate a nakonfigurujte DeepL v Prekladové služby cieľového projektu. Nainštalujte doplnok Automatizácia a zadajte tento pracovný postup:

version: 1
triggers:
  - trigger: component_update
  - trigger: daily
actions:
  - action: weblate.automatic_translation
    id: memory
    settings:
      auto_source: mt
      engines: [weblate-translation-memory]
      threshold: 95
      mode: translate
      q: "state:<translated"
  - action: weblate.automatic_translation
    id: machine
    settings:
      auto_source: mt
      engines: [deepl]
      threshold: 80
      mode: translate
      q: "state:<translated"

Prvá akcia dokončí pred tým, než druhá akcia vyberie svoje reťazce. Obidve používajú mode: translate, takže úspešný preklad prvej fázy už nezodpovedá state:<translated a nie je odosielaný do DeepL druhou akciou. Existujúce preložené alebo schválené reťazce sú vylúčené z oboch fáz. Nepreložené reťazce a reťazce vyžadujúce úpravu sú spôsobilé; ak sa majú spracúvať iba nepreložené reťazce, použite state:empty v oboch akciách.

Každý prah platí iba pre svoju akciu. Nastavte prah pamäte na 100, aby sa prijímali iba presné zhody, alebo ho znížte, aby sa prijímali menej podobné zhody pred vyskúšaním vzdialenej služby. Skóre strojového prekladu sú špecifické pre službu: vyberte prah nie vyšší ako zdokumentované maximálne skóre služby. Nahraďte deepl iným nakonfigurovaným ID služby, aby ste použili iného poskytovateľa, vrátane služby AI.

Udržujte jeden engine na akciu, keď záleží na poradí. Vloženie oboch ID do jedného zoznamu engines používa existujúcu Priorita služieb strojového prekladu a prekladovej pamäte, nie poradie zoznamu. Na vyskúšanie dodatočných poskytovateľov pripojte ďalšiu akciu s vlastným enginom, prahom a rovnakým dotazom. Na najprv opätovné použitie prekladov z iných komponentov Weblate pridajte na začiatok akciu používajúcu auto_source: others namiesto auto_source: mt a vynechajte engines.

Zmena fázy na mode: suggest ponechá stav reťazca nezmenený; mode: fuzzy ho ponechá ako vyžadujúci úpravu. Ani jedna nevylúči svoje výsledky z neskoršej fázy state:<translated. Ponechajte mode: translate, keď je zámerom zachovať preklady každej úspešnej fázy.

Použite Náhľad bez zmien na overenie pracovného postupu pred použitím Spustiť teraz. Náhľad nevolá služby prekladu ani nepredpovedá ich výsledky. Po skutočnom behu preskúmajte protokol aktivity pre počet updated a varovania každej akcie. Zlyhanie služby, ktoré zastaví pracovný postup, sa zaznamená ako chyba; neskoršie akcie sa nevykonajú.

Odstráňte alebo zakážte prekrývajúce sa doplnky automatického prekladu pri ich nahradení týmto pracovným postupom. Poradie platí v rámci jedného behu automatizácie; samostatné doplnky a súbežné behy sa stále môžu prekrývať. Spúšťač daily rešpektuje BACKGROUND_TASKS. Na manuálne vykonanie použite triggers: [].

Hodnoťte preklady AI pred schválením

This workflow runs after repository component updates or source edits in Weblate. It applies translation memory first, translates remaining strings with OpenAI, and evaluates only strings changed by the OpenAI action. Clean strings are approved; strings with AI quality findings are marked as needing checking. Configure the translation memory and OpenAI services in the target project. Install the Hodnotenie kvality AI add-on with OpenAI as its evaluation service and its query including translated strings.

version: 1
triggers:
  - trigger: component_update
  - trigger: change
    events: [source_string_changed]
actions:
  - action: weblate.automatic_translation
    id: memory
    settings:
      auto_source: mt
      engines: [weblate-translation-memory]
      threshold: 95
      mode: translate
      q: "state:<translated"
  - action: weblate.automatic_translation
    id: machine
    settings:
      auto_source: mt
      engines: [openai]
      mode: translate
      q: "state:<translated"
  - action: weblate.ai_quality
    id: quality
    scope: result:machine
    settings: {}
  - action: weblate.bulk_edit
    scope: result:quality
    settings:
      q: "NOT (check:ai_accuracy OR check:ai_fluency OR check:ai_terminology OR check:ai_style OR check:ai_formatting)"
      state: 30
  - action: weblate.bulk_edit
    scope: result:quality
    settings:
      q: "check:ai_accuracy OR check:ai_fluency OR check:ai_terminology OR check:ai_style OR check:ai_formatting"
      state: 12

Akcia kvality používa prienik svojho rozsahu, dotazu doplnku a svojho voliteľného settings.q. Zastaví pracovný postup, ak hodnotenie zlyhá alebo preskočí ľubovoľnú dávku, takže neúplné výsledky nikdy nedosiahnu akciu schválenia. Jeho rozsah výsledkov obsahuje iba jednotky úspešne vyhodnotené v tomto behu. Stav 12 je Potrebuje úpravu (Potrebuje kontrolu); recenzenti môžu preskúmať zistenia a revidovať tieto preklady. Päť filtrov check:ai_* vyberá nezamietnuté zistenia. Zakážte frekvenciu hodnotenia doplnku a jeho spúšťače zmien a aktualizácií, ak iba tento pracovný postup má iniciovať hodnotenie.

Spustiť akciu iba vtedy, keď fáza prekladu aktualizuje reťazce

ID akcií sprístupňujú výstapy neskorším podmienkam. Napríklad pripojte nasledujúcu položku do zoznamu actions predchádzajúceho pracovného postupu, aby ste označili preklady z komponentu ako vyžadujúce úpravu, keď fáza strojového prekladu aktualizovala aspoň jeden reťazec:

- choose:
    - conditions:
        - condition: expression
          value: results.machine.updated > 0
      sequence:
        - action: weblate.bulk_edit
          settings:
            q: "state:translated"
            state: 10
  default: []

Dotaz hromadnej úpravy vyberá všetky aktuálne preložené reťazce v komponente, vrátane prekladov, ktoré existovali pred behom a zhôd pamäte. Nevyberá iba reťazce aktualizované machine. Pred použitím tohto príkladu zúžte dotaz na zamýšľané reťazce. Stav reťazca 10 znamená vyžadujúci úpravu; neschvaľuje ani nevyžaduje revíziu prekladov.

choose vykoná iba prvú vetvu, ktorej podmienky prejdú. Tu prázdny default nevykonáva žiadnu akciu, keď fáza prekladu neaktualizovala žiadne reťazce. Počas náhľadu je podmienka neznáma, pretože machine nebola vykonaná.

Preložiť po zmenách zdroja

Tento úplný pracovný postup počúva úpravy zdroja vo Weblate a nové zdrojové reťazce z repozitára. Spúšťa sa iba pre kategorizované komponenty zodpovedajúce buď frontend alebo backend, a iba keď zmena obsahuje neprázdnu jednotku. Akcia opätovne používa preklady iných komponentov pre nemecké reťazce potrebujúce preklad.

version: 1
triggers:
  - trigger: change
    events: [source_string_changed, source_string_added_in_the_repository]
conditions:
  - condition: and
    conditions:
      - condition: or
        conditions:
          - condition: component_category
            value: frontend
          - condition: component_category
            value: backend
      - condition: expression
        value: unit != null && unit.source != ""
actions:
  - action: weblate.automatic_translation
    id: reused
    settings:
      auto_source: others
      mode: translate
      q: "language:de AND state:<translated"

The null guard makes automatic changes without a unit safely skip the workflow. To run or preview this change-only workflow, supply a matching change ID belonging to the target component. Leave Preview without changes checked to inspect the event-driven path without changing strings.

Dotaz akcie cieli na všetky zodpovedajúce nemecké reťazce v komponente, nie iba jednotku zo spúšťajúcej zmeny. trigger.unit_ids poskytuje kontext pre podmienky; neaplikuje sa automaticky na operácie a nemožno ho interpolovať do q. Uvedené udalosti nepokrývajú každý druh aktualizácie zdroja; ak má pracovný postup reagovať aj na nahrávania alebo iné zmeny, vyberte dodatočné Vybrané udalosti zmien.