Help:Extension:Translate/Validators/cs

Překládané řetězce často obsahují značky, které chceme u překladu zachovat tak, jak jsou. Zápis takových značek do překladu může být pro překladatele problematický, obzvláště, pokud se při něm pracuje se speciálními znaky, které nejsou moc běžné. Proto se při značkování používají zástupné elementy, které pak v překladatelském rozhraní nabízí tlačítka, po jejichž stisknutí se na aktuální pozici kurzoru vloží do překládané zprávy zástupný prvek. Pokud se takový zástupný element do překladu nevloží, může na to rozšíření překladatele upozornit, nebo dokonce může jeho překlad odmítnout, je-li kód zástupného elementu nezbytný pro to, aby se překlad zobrazoval správně.

Kupříkladu následující řetězec "Adapted by %{name} from a work by %{original}" bude vyžadovat hned dva zástupné elementy. Pro řetězce  a. Pokud by je překladatel do překladu nevložil, tak by se přeložená zpráva nezobrazovala správně.

Proto existuje komponenta  která pomáhá překladatelům tím, že ověřuje překlady. Pracuje při tom s tzv. validátory, které se aplikují na překlad ještě před uložením. Pokud nevyhoví jejich nastavení, překladatele upozorní nebo rovnou oznámí chybu. Je-li oznámeno pouze varování, překlad se uloží, ale při ohlášené chybě ne. Jedině uživatel, který má právo  může uložit i překlad ve kterém je chyba.

Konfigurační soubor validátoru identifikuje řetězce na základě regulárního výrazu. Proto nesmí chybět. Validátor z něj může vygenerovat zástupný element, který se pak zobrazí jako tlačítko v překladatelském rozhraní, přes které se dá do překladu vložit.

Můžete si vytvořit i vlastní validátory, pokud potřebujete mít více specializované ověřování.

Konfigurace
Takto vypadá kompletní konfigurace validátoru:

K výše uvedenému příkladu:


 * 1)   je validátor dodávaný v rámci instalace, jehož regulární výraz si můžete upravit, tak aby vyhovoval vašim požadavkům na ověřování.
 * 2)   je třída, která ověřuje řetězec podle vlastních pravidel.
 * 3)   je další validátor, který je součástí instalace.

je pole. Parametry, které se v rámci tohoto pole použijí, jsou klíče zastupující jednotlivé položky.

Předpřipravené / Dodávané validátory
Toto je přehled validátorů, které jsou již předpřipravené

BraceBalance
ID:

Zajišťuje, že počet otevřených závorek / závorek odpovídá počtu uzavřených závorek / závorek v překladu.

Prošly by například následující překlady:



přičemž následující by se nezdařilo:



Tento validátor nelze označit jako vložitelný.

EscapeCharacter
ID:

Validátor zajišťuje, že v překladu je přítomen pouze zadaný znak escape.

Povolené znaky escape lze zadat při přidávání validátoru a mohou obsahovat pouze:



Tento validátor nelze vložit.

GettextNewline
ID:

Funguje speciálně pro skupiny zpráv založených na GetText.

Zajišťuje, že překlad má na začátku a na konci řetězce stejný počet nových řádků jako zdrojová zpráva.

GettextPlural
ID:

Funguje konkrétně na skupinách zpráv založených na GetText.

Zajišťuje, že pokud zdroj / definice obsahuje množné číslo ve formátu -, překlad jej musí obsahovat také. Na základě jazyka se také kontroluje, zda má překlad správný počet tvarů množného čísla. Například angličtina má dva, ale hebrejština čtyři.

InsertableRegex
ID:

Obecný opakovaně použitelný validátor, který lze použít ke specifikaci vlastních validací a vložitelných položek.

Vezměte například následující konfiguraci, kde je validátor označen jako vložitelný a vynucený:

Vzhledem k následující zdrojové zprávě – ''Hello $name. My name is $myName., která se překládá, musí mít překlad parametry – $name a $myName''. Budou také zobrazeny jako vložené položky, aby je překladatelé mohli snáze použít v překladu. Absence těchto parametrů způsobí, že se v překladači zobrazí chyba.

InsertableRubyVariable
ID:

Toto je validátor, který odpovídá rubínovým proměnným v překladech. Interně rozšiřuje  a používá následující regulární výraz -. Tento validátor je vložitelný.

Příklad:

IosVariable
ID:

Vložitelný validátor proměnných pro IOS. Regex se používá odtud. Tento validátor je vložitelný.

Příklad:

MatchSet
ID:

Zajistí, že překlad je přítomen v seznamu hodnot. Také přebírá parametr –, který může být buď true (výchozí) nebo false.

Například v následující konfiguraci validátor ověří zprávu pomocí klíče -  a zajistí, že hodnoty pro ni mohou být buď ltr nebo rtl. Všimněte si, že LTR nebo RTL nebudou platné hodnoty, protože  je ve výchozím nastavení true.

MediaWikiLink
ID:

Zkontroluje, zda překlad používá odkazy, které jsou odrazovány. Platné odkazy jsou ty, které odkazují na Speciální: stránky,  nebo projektové stránky prostřednictvím zpráv MediaWiki jako je. Takže odkazy v definici jsou povoleny.

MediaWikiPageName
ID:

Zajišťuje, že pokud zdroj / definice obsahuje jmenný prostor, jako je, provedené překlady se nepokusí přeložit samotné jmenné prostory.

MediaWikiParameter
ID:

Toto je validátor, který odpovídá parametrům wiki v překladech. Interně rozšiřuje  a používá následující regulární výraz -. Tento validátor je vložitelný.

Příklad: ,.

MediaWikiPlural
ID:

Zajišťuje, že pokud zdroj / definice obsahuje, měl by ji obsahovat i překlad. Lze jej použít i jako vložku. Na základě jazyka se také kontroluje, zda má překlad správný počet tvarů množného čísla. Například angličtina má dva, ale hebrejština tři.

MediaWikiTimeList
ID:

Poskytuje ověření možností vypršení platnosti a možností blokování IP specifikovaných v jádře MediaWiki. Ty jsou obvykle ve formátu,

Validace zajišťují, že překlady mají přesně stejný počet párů klíč–hodnota. Tato ověření se spouštějí pouze u zpráv s klíči:


 * 1) protect-expiry-options
 * 2) ipboptions

Newline
ID:

Zajišťuje, že překlad má stejný počet nových řádků jako zdrojová / definiční zpráva na začátku řetězce. Tento validátor nelze vložit.

NotEmpty
ID:

Zajišťuje, že překlad má nějaký obsah a že obsahem nejsou jen mezery. Tento validátor nelze vložit.

NumericalParameter
ID:

Tento validátor odpovídá číselným parametrům pomocí následujícího regulárního výrazu:. Tento validátor je vložitelný.

Příklad: ,  etc.

Printf
ID:

Tento validátor kontroluje chybějící a neznámé znaky formátování printf v překladech. Tento validátor je vložitelný.

Příklad: ,  etc.

PythonInterpolation
ID:

Tento validátor porovnává proměnné interpolace řetězců pythonu pomocí následujícího regulárního výrazu:. Tento validátor je vložitelný.

Příklad: ,

Replacement
ID:

Zkontroluje, zda překlad používá řetězec, a místo toho navrhne překladateli, aby použil řetězec uvedený pod. Tento validátor nelze vložit.

SmartFormatPlural
ID:

Funguje konkrétně na skupinách zpráv založených na SmartFormat.

Zajišťuje, že pokud zdroj / definice obsahuje množné číslo ve formátu -, překlad jej musí obsahovat také. Na základě jazyka se také kontroluje, zda má překlad správný počet tvarů množného čísla. Například angličtina má dva, ale hebrejština čtyři.

UnicodePlural
ID:

Zajišťuje, že pokud zdroj / definice obsahuje množné číslo ve formátu -, překlad jej musí obsahovat také. Na základě jazyka se také kontroluje, zda má překlad správný počet tvarů množného čísla. Například angličtina má dva, ale hebrejština tři.

Uživatelské rozhraní
Uživatelské rozhraní bylo aktualizováno, aby rozlišovalo mezi chybami a varováními.

Pokud během překladu dojde k chybě při překladu, tlačítko Uložit překlad je deaktivováno, pokud uživatel, který překládá, nemá oprávnění.

Další ověření se také provádí na serveru, když uživatel ukládá překlad. To stále umožňuje uživatelům, kteří mají oprávnění, uložit překlad, i když obsahuje chyby.

Vlastní validátory
Některé komplikované validace mohou i nadále vyžadovat napsání vlastního validátoru. Vlastní validátory musí implementovat rozhraní.

Níže je uveden příklad vlastního validátoru:

Also see the following classes,


 * 1)   - https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/Translate/+/master/src/Validation/ValidationIssues.php
 * 2)   - https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/Translate/+/master/src/Validation/ValidationIssue.php

The add the custom validator in the configuration file,