Template:Pagelang/doc/cs

Použití
{	"description": { "en": "This stuff template for check language of translated subpage (for translatable pages). Used for automate substitution localized values that will match the language of the current page. Also used to help defining text direction (with using with ). It is designed to be called from other templates.", "cs": "Tato šablona pro kontrolu jazyka přeložené podstránky (pro přeložitelné stránky). Používá se k automatickému nahrazování lokalizovaných hodnot, které budou odpovídat jazyku aktuální stránky. Také se používá k definování směru textu (s použitím s ). Je navržen pro volání z jiných šablon.", "tr": "Çevrilen alt sayfanın kontrol dili için malzeme şablonu (çevrilebilir sayfalar için). Geçerli sayfanın diliyle eşleşecek yerelleştirilmiş değiştirme değerlerini otomatikleştirmek için kullanılır. Ayrıca metin yönünü tanımlamaya yardımcı olmak için de kullanılır ( ile birlikte). Diğer şablonlardan çağrılmak üzere tasarlanmıştır." },	"format": "inline", "params": { "1": {			"label": { "en": "Page title", "cs": "Název stránky", "tr": "Sayfa başlığı" },			"description": { "en": "Page title to get language for. By default the title of the current page.", "cs": "Název stránky pro získání jazyka. Ve výchozím nastavení název aktuální stránky.", "tr": "Dili alınacak sayfa başlığı. Varsayılan olarak mevcut sayfanın başlığı." },			"type": "wiki-page-name" }	} }

Příklady


Příklady běžného použití v přeložených stránkách nebo šablonách:

Technická poznámka
Pokud podstránka obsahuje jakékoli (jednoduché nebo dvojité) uvozovky nebo ampersandy, nejedná se o platný kód jazyka;  a   obvykle tyto znaky ve své návratové hodnotě kódují HTML, takže je lze bezpečně použít jako vstup. Ale  tyto uvozovky nebo ampersandy obnoví jejich dekódováním v HTML.

Ale pak  způsobí závažnou chybu serveru, když je použit s "kódy jazyků" s jednoduchých uvozovkách.
 * Důkaz

Tohle funguje:

To nefunguje:

Ani tohle: Toto je kritická chyba funkce parseru  a zřejmě vážné bezpečnostní problémy, které by mohly být způsobeny nějakým chytrým vložením kódu do PHP místo citátu.

Tato chyba se vyskytuje pouze ve druhém parametru  (cílový jazyk, do kterého se má zadat název jazyka určeného kódem v prvním parametru). Platnost se kontroluje pouze u prvního parametru, u druhého nikoli. Zde, kde  nemůže najít název jazyka v žádném cílovém jazyce, by měl vrátit název rodného jazyka, jako v:




 * Slova použitá v této šabloně

Abychom se vyhnuli této závažné chybě, chceme detekovat uvozovky (nebo ampersandy) v názvech podstránek, protože jsou stejně neplatné v jakémkoli kódu jazyka, abychom vrátili prázdný řetězec, nikoli název podstránky: Takový název podstránky nemůže být kód jazyka tak jako tak.

Jedním ze způsobů, jak zjistit podstránky, které nemohou být bezpečnými kódy jazyků, je zkontrolovat, zda se jejich hodnota filtrovaná pomocí  rovná jejich hodnotě filtrované pomocí  : pokud se nerovnají to proto, že obsahovaly "ampersandy" neboli uvozovky.


 * Proč používáme  a ne jenom  ?

je v této šabloně použit místo použití, ale použití   by se také nevyhnulo chybě, protože by také mohlo vrátit celý název stránky obsahující uvozovky (  funguje pouze ve jmenných prostorech, kde byly aktivovány podstránky, takže v hlavním jmenném prostoru nefunguje, aby se zjistilo, zda byl přeložen pomocí přípony kódu jazyka).

Související odkazy

 * TNT
 * LL
 * BCP47
 * dir
 * dir