Pravidla
Pravidlo je jedna konkrétní pojmenovaná jazyková konvence, kterou lokalizační engine používá pro cílový jazyk: „v adresách zkracujte Straße na Str.“, ne „buďte neformálnější“. Pravidla jsou uložená v sadách pravidel — kontejnerech vlastněných organizací, které engine používá po připojení. Díky tomu může jedna sada pravidel řídit každý engine, který ji potřebuje.
Pravidla se dříve nazývala instrukce
V dashboardu se jim říká pravidla a seskupují se do sad pravidel. REST API stále zpřístupňuje jednotlivé pravidlo na /instructions a názvy jeho polí zůstávají beze změny — změnilo se jen to, kam se pravidlo zapisuje: rulesetId nahradilo ownerEngineId.
Jak to funguje#
Sada pravidel patří vaší organizaci, ne enginu. Teprve když ji k enginu připojíte, začnou se její pravidla používat — do enginu se nic nekopíruje.
| Objekt | Pole |
|---|---|
| Sada pravidel | Název, popis. Může obsahovat libovolný počet pravidel. |
| Pravidlo | Název, cílový jazyk (nebo *), text. |
Když dorazí požadavek na překlad, engine shromáždí všechna pravidla ve všech připojených sadách pravidel, jejichž cílový jazyk odpovídá hodnotě targetLocale v požadavku, a přidá je do promptu pro LLM spolu s hlasem značky a glosářem. Pravidla si nekonkurují: zahrnou se všechna odpovídající pravidla, seřazená od nejpřesnější shody jazyka, aby byla ta nejkonkrétnější vodítka na začátku.
| Pole | Popis |
|---|---|
| Název | Krátký štítek, který pravidlo identifikuje (např. „německé formální oslovování“) |
| Cílový jazyk | Jazyk, na který se toto pravidlo vztahuje, nebo * pro všechny jazyky (Libovolný jazyk v dashboardu) |
| Text | Jazykové pravidlo napsané přirozeným jazykem |
Více pravidel pro jeden jazyk
Vytvořte tolik pravidel, kolik daný jazyk potřebuje. Každé pravidlo by mělo řešit jednu věc — právě díky tomu se dá samostatně testovat, vyhodnocovat pomocí AI hodnocení pravidel a bezpečně smazat.
Sady pravidel patří organizaci#
| Akce | Důsledek |
|---|---|
| Vytvořit sadu pravidel | Existuje na úrovni organizace a nic neovlivňuje, dokud ji nepřipojíte |
| Připojit ji k enginu | Každé pravidlo v ní se použije na překlady tohoto enginu |
| Připojit ji k několika enginům | Stejná pravidla budou řídit všechny — upravíte jednou, každý engine se jimi bude řídit |
| Připojit několik sad pravidel k jednomu enginu | Všechna jejich pravidla se zkombinují |
| Odpojit ji od enginu | Engine ji přestane používat. Sada pravidel i její pravidla zůstanou zachované. |
| Smazat sadu pravidel | Dokud ji ještě používá nějaký engine, smazání bude odmítnuto — nejdřív ji odpojte. Smazáním odstraníte i její pravidla. |
| Smazat engine | Sady pravidel i pravidla zůstanou. Patří organizaci, ne enginu. |
Sady pravidel spravujete v části Infrastructure → Rulesets. Karta Rules v sadě pravidel obsahuje její pravidla; na kartě Settings najdete přehled engine vaší organizace, kde můžete sadu pravidel přiřadit k engine nebo její přiřazení zrušit. Naopak na kartě Settings u engine je sekce Rulesets, která ukazuje, jaké sady pravidel engine používá, a pomocí Add ruleset k němu můžete připojit další.
Předdefinovaná pravidla#
Lingo.dev spravuje katalog hotových pravidel — konvencí pro jednotlivé jazyky, které většina týmů potřebuje, ale málokoho napadne je sepsat. Připojují se přímo k engine, ne přes sadu pravidel, a kdykoli je můžete odpojit.
V dashboardu pro předdefinovaná pravidla není samostatná obrazovka. Katalog můžete procházet a položky připojovat přes API nebo MCP server:
| Volání | Nástroj MCP | Účel |
|---|---|---|
GET /predefined-instructions | predefinedInstructions_list | Vypsat katalog |
GET /engines/:id/predefined-instructions | engines_listPredefinedInstructions | Vypsat předdefinovaná pravidla, která engine používá |
PUT /engines/:id/predefined-instructions | predefinedInstructions_setForEngine | Nahradit sadu pravidel, která engine používá — pošlete úplný seznam ids; vše, co vynecháte, se odpojí |
DELETE /engines/:id/predefined-instructions/:predefinedInstructionId | predefinedInstructions_detach | Přestat u engine používat jednu položku |
GET /predefined-instructions/:id/engines?organizationId= | predefinedInstructions_listEngines | Vypsat engine vaší organizace, které používají danou položku |
Každá položka katalogu má cílový jazyk, název, popis, type (standard, convention nebo preference) a category. Položky se stejným groupKey představují alternativy pro tentýž jazyk — engine může používat nanejvýš jednu z nich a požadavek, který vybere dvě, bude zamítnut. Připojení i odpojení vyžaduje u engine oprávnění engine:edit; katalog může číst kdokoli přihlášený.
Kurátorovaná pravidla se v promptu řadí před ta vaše, takže pravidlo, které napíšete, základní nastavení zpřesní nebo přepíše, místo aby s ním soupeřilo.
Pravidla vs. hlas značky#
Obojí ovlivňuje výstup překladu, ale každé na jiné úrovni:
| Hlas značky | Pravidlo | |
|---|---|---|
| Rozsah | Celkový tón, styl, formálnost | Jedno konkrétní jazykové pravidlo |
| Pro každý jazyk | Jeden text pro každý jazyk, jeden hlas pro každý jazyk a engine | Více pravidel pro jeden jazyk |
| Použití | Použije se jeden nejlépe odpovídající text | Zkombinují se všechna odpovídající pravidla |
| Zástupný znak | Ano (* funguje jako výchozí hlas) | Ano (* platí pro všechny jazyky) |
| Příklad | „Používej neformální du, technický tón“ | „V adresách vždy zkracuj Straße na Str.“ |
Hlas značky použijte k tomu, abyste určili, jak váš produkt v daném jazyce mluví — formálnost, rejstřík, styl vět.
Pravidla použijte k zachycení konkrétních konvencí, které by model jinak minul — zkratek, interpunkce, formátování jednotek nebo jazykově specifických gramatických vzorců.
Fungují spolu: hlas značky nastavuje celkový projev, pravidla řeší okrajové případy.
Jak psát efektivní pravidla#
Každé pravidlo by mělo být jedno samostatné, jednoznačné tvrzení. Engine zahrnuje celý jeho text do promptu LLM, takže na srozumitelnosti opravdu záleží.
Dobrá pravidla#
Always use the Oxford comma in English lists.In Japanese, use full-width parentheses ()instead of half-width ().For German addresses, abbreviate "Straße" to "Str." and
"Nummer" to "Nr."When translating percentage values for French, add a
non-breaking space before the percent sign: 42 %.Čemu se vyhnout#
- Vágním doporučením, která se překrývají s hlasem značky („buď neformálnější“) — to patří spíš do hlasu značky
- Více nesouvisejících konvencí v jednom pravidle — rozdělte je, aby šlo každou testovat samostatně
- Pravidlům, která jsou v rozporu s glosářem — termíny z glosáře mají v hierarchii enginu přednost
Zástupný jazyk#
Nastavte cílový jazyk na * (Libovolný jazyk v dashboardu), aby se pravidlo použilo napříč všemi jazyky. Hodí se to pro konvence nezávislé na jazyce:
Never translate product feature names: "Smart Compose",
"Quick Actions", "Flow Builder".Preserve Markdown formatting in all translated strings.
Keep bold (**), italic (*), and link syntax [text](url) intact.Když engine zpracovává požadavek, zahrnou se jak pravidla pro konkrétní jazyk, tak pravidla se zástupným znakem — kombinují se, nepřepisují.
Použití pravidel přes API#
Pravidla se použijí automaticky při volání endpointu localize. Engine shromáždí všechna pravidla odpovídající targetLocale požadavku (plus případná pravidla *) ze sad pravidel, které používá, spolu se všemi připojenými předdefinovanými pravidly. Žádné další parametry nejsou potřeba.
| Volání | Účel |
|---|---|
POST /rulesets | Vytvořit sadu pravidel pro organizaci |
GET /organizations/:id/rulesets | Vypsat sady pravidel organizace včetně počtu pravidel a enginů |
GET /rulesets/:id/rules | Vypsat pravidla v sadě pravidel |
POST /instructions with rulesetId | Přidat pravidlo do sady pravidel |
PUT /engines/:id/rulesets | Nahradit sadu sad pravidel, které engine používá |
DELETE /engines/:id/rulesets/:rulesetId | Přestat u enginu používat jednu sadu pravidel |
GET /engines/:id/instructions | Vypsat všechna pravidla, která engine používá prostřednictvím svých sad pravidel (předdefinovaná pravidla jsou uvedená samostatně) |
ownerEngineId na POST /instructions stále funguje — zapisuje do vlastní sady pravidel enginu a vytvoří ji, pokud engine žádnou nemá. Doporučujeme ale rulesetId.
Přístup#
org:ruleset:read a org:ruleset:edit řídí sady pravidel i pravidla v nich; připojení jedné z nich k engine také vyžaduje u daného engine oprávnění engine:edit. Oprávnění pro konkrétní sadu pravidel dává uživateli možnost číst a upravovat jednu sadu pravidel místo všech sad pravidel v organizaci; tato oprávnění se nastavují přes API nebo MCP, ne v dashboardu. Viz Role a oprávnění.
Správa pravidel přes MCP#
Pokud používáte Lingo.dev MCP server, váš AI coding assistant může pravidla i sady pravidel vytvářet, upravovat a mazat přímo:
"Create a ruleset called German conventions and apply it to
the marketing engine.""Add a rule to that ruleset: always abbreviate Straße to Str.
in addresses.""Add a wildcard rule: never translate the term Smart Compose.""List the predefined rules for German and attach the ones
you recommend to the marketing engine."