Příkaz run zpracovává překladové úlohy souběžně tím, že je rozděluje mezi pool workerů. Každá kombinace jazyk/soubor je samostatná úloha a workeři je zpracovávají paralelně.
Použití#
# Default concurrency (10 workers)
npx lingo.dev@latest run
# Custom concurrency
npx lingo.dev@latest run --concurrency 20Jak to funguje#
- Vytváření úloh — CLI analyzuje váš soubor
i18n.jsona vytváří samostatné úlohy pro každou kombinaci jazyk/soubor - Rozdělení mezi workery — úlohy se pomocí vyvažování zátěže přiřazují dostupným workerům
- Souběžné zpracování — workeři překládají paralelně, zatímco zámky souborového systému zabraňují konfliktům při zápisu
- Shromáždění výsledků — dokončené překlady se bezpečně zapisují do cílových souborů
Možnosti cílení#
S paralelním zpracováním fungují všechny možnosti cílení z příkazu run:
| Možnost | Popis |
|---|---|
--target-locale es | Zpracovat konkrétní cílové jazyky |
--source-locale en | Přepsat zdrojový jazyk |
--bucket json | Zpracovat konkrétní typy bucketů |
--file components/header | Zpracovat konkrétní soubory (podporuje glob vzory) |
--key welcome.title | Zpracovat konkrétní klíče (podporuje glob vzory) |
--force | Obejít lockfile a přeložit vše znovu |
--frozen | Selhat, pokud některý obsah vyžaduje překlad |
--concurrency 20 | Nastavit počet souběžných workerů |
Automatické ukládání do mezipaměti#
Při použití Lingo.dev API se velké jazykové soubory rozdělují na části. Cílové soubory se postupně doplňují podle toho, jak se jednotlivé části vracejí z API. Pokud se proces přeruší, při dalším spuštění naváže tam, kde skončil.
Pro opětovný překlad nejprve použijte purge a potom run bez --force. Využijete tak vestavěný mechanismus ukládání do mezipaměti, který je při zpracování efektivnější než run --force.
Bezpečnost#
Pool workerů předchází poškození souborů díky:
- Synchronizace I/O — operace se souborovým systémem se pro každý soubor provádějí sériově
- Ochrana lockfilem — atomické operace zabraňují poškození
i18n.lockpři souběžném přístupu - Transakční zpracování — každá úloha se buď dokončí celá, nebo čistě selže
