test-insert
Šablona {{Mt}} je určena pouze pro použití v rámci vícejazyčné wiki.
Šablona akceptuje pouze jeden poziční parametr, kterým je jazykový kód. Pokud chybí vrací šablona ostatní předané parametry jako řetězec. Tohoto chování šablony lze využít, chceme-li předat tyhle parametry ke zpracování jiné šabloně, nebo zkontrolovat, jaké parametry se předávají šabloně.
{{Mt|print=dot|o=test-translate|t=test-dontmarkup|}}- print=dot|1=|o=test-translate|t=test-dontmarkup|s=
- o
- Hodnotou je název stránky. Nebude-li to existující stránka, nezobrazí šablona většinou nic. Je to pro většinu situací výchozí stránka, a název atributu vychází z anglického slova origin neboli česky původ.
- Je klíčový parametr. Nemusí být vždy nutně uveden, ale na tom, jakou hodnotu jeho prostřednictvím předáme šabloně, záleží co se zobrazí a jak.
- s
- Výchozím oddělovačem, neboli separátorem, který se přidává na začátek řetězce je znak
•doplněný dvěma mezerami. Ovšem za určitých okolností se hodí, když ho můžeme vyměnit za řetězec, který předáme prostřednictvím tohoto parametru. - t
- Šablona
{{Mt}}umožňuje generovat také odkazy na jazykové verze stránek, transkluzivně vložené do cílové stránky. A její název se šabloně předává prostřednictvím tohoto atributu. Jehož název byl odvozen z angl. slova target (česky cíl).
Testujeme cílovou stránku
Cílem je nepřekládaná stránka
Zdrojem je překládaná stránka test-translate, překlad existuje a cílem je nepřekládaná stránka test-dontmarkup. Měl by se zobrazit řetězec translatable
{{Mt|print=|o=test-translate|t=test-dontmarkup|en}}- translatable
Výsledek její interpretace je následující: {{test-mt
|{{Mt
|print=
|o=test-translate
|t=test-dontmarkup
|zh
}}|zh|test-translate|test-dontmarkup}}
}}
Šablona {{test-mt}} má následující obsah:
{{#switch:{{{1}}}
|translatable=Do jazyka [[{{{3}}}/{{{2}}}{{!}}{{#language:{{{2}}}}}]] se stránka [[{{{4}}}]] překládá na stránce [[{{{3}}}]].
|origin=Stránka [[{{{4}}}]] nemá překlad do jazyka '{{{2}}}'. Chcete-li aby nabízela multijazyčný obsah, máte několik možností:
# Můžete obsah stránky [[{{{4}}}]], překládat přes systémové zprávy.
# Můžete v jejím wikikódu použít interní funkci XXX, která zajistí automatické natažení přeloženého obsahu ze stránky [[{{{3}}}]], na základě zvoleného jazyka rozhraní, bude-li takový překlad existovat.
# Nebo můžete vytvořit podstránku [[{{{4}}}/{{{2}}}]] a do záhlaví vložte následující kód, který bude dělat redirekt na jazykovou podstránku (pojmenovanou <code>{{{2}}}</code>), pokud ovšem bude pro stránku [[Special:MyLanguage/{{{3}}}]] překlad do jazyka '{{{2}}}' existovat.
: <code><nowiki>#REDIRECT [[</nowiki>{{{3}}}/{{{2}}}<nowiki>]]</nowiki></code>
|#default={{{1}}}
}}
Výsledek její interpretace je následující: Stránka test-dontmarkup nemá překlad do jazyka 'zh'. Chcete-li aby nabízela multijazyčný obsah, máte několik možností:
- Můžete obsah stránky test-dontmarkup, překládat přes systémové zprávy.
- Můžete v jejím wikikódu použít interní funkci XXX, která zajistí automatické natažení přeloženého obsahu ze stránky test-translate, na základě zvoleného jazyka rozhraní, bude-li takový překlad existovat.
- Nebo můžete vytvořit podstránku test-dontmarkup/zh a do záhlaví vložte následující kód, který bude dělat redirekt na jazykovou podstránku (pojmenovanou
zh), pokud ovšem bude pro stránku Special:MyLanguage/test-translate překlad do jazyka 'zh' existovat.
#REDIRECT [[test-translate/zh]]
Čínský překlad stránky test-translate ani test-dontmarkup tady rozhodně nevznikne. Proto je zpráva viditelná. Ale nyní si zkusme, jaký bude výsledek, použijeme-li kód 'en': Do jazyka English se stránka test-dontmarkup překládá na stránce test-translate.
- Zdrojem je překládaná stránka test-translate, překlad existuje a cílem je nepřekládaná stránka test-dontmarkup. Měl by se zobrazit červeně vybarvený link test-dontmarkup/en a za ním aktivní link výchozí stránku test-translate/en pojmenovaný English, a na začátku by měl být doplněný separátor
{{Mt|print=dot|o=test-translate|t=test-dontmarkup|en}}- • test-dontmarkup/en (English)
Cílem je překládaná stránka
Pokud je zdrojem překládaná stránka test-translate, překlad existuje a cílem jiná překládaná stránka např. titulky 1L1, zobrazí název jazyka, odkazující na stránku titulky 1L1/en
{{Mt|print=|o=test-translate|t=titulky 1L1|en}}- English
- S parametrem 'print=dot' včetně separátoru...
{{Mt|print=dot|o=test-translate|t=titulky 1L1|en}}- • English
- A s parametrem 'print=dotcode' včetně kódu jazyka...
{{Mt|print=dot|o=test-translate|t=titulky 1L1|en}}- • English (en)
Stejný zdroj i cíl
Občas se může stát, že se šabloně předá jako cíl i překládaná zdrojová stránka.
Pro šablonu to není problém, ale v reál by došlo k zacyklení, proto se u překládané stránky u níž překlad v příslušném jazyce existuje v takovém případě se zobrazí řetězec tiso – target is origin, který lze v jiné šabloně odchytit a ošetřit.
{{Mt|print=|o=test-translate|t=test-translate|en}}- tiso
{{Mt|print=dot|o=test-translate|t=test-translate|en}}- tiso
{{Mt|print=dotcode|o=test-translate|t=test-translate|en}}- tiso
U nepřeloženého zdroje se nezkoumá shoda s cílem, protože je třeba dořešit nejprve překlad výchozí stránky, proto se vrací, není-li parametrem print řečeno jinak, řetězec origin.
{{Mt|print=|o=test-dontmarkup|t=test-dontmarkup|en}}- origin
Parametr print=dot generuje položku do seznamu jazyků, doplněnou výchozím separátorem. Proto generuje jiný výsledek. Aktivní odkaz na Special:MyLanguage/test-dontmarkup, pojmenovaný 'default'
{{Mt|print=dot|o=test-dontmarkup|t=test-dontmarkup|en}}- • English (default)
Podobná situace se bude opakovat v situaci, kdy výchozí stránka (origin) nebude existovat.
{{Mt|print=|o=test-dontmarkup|t=test-dontmarkup|en}}
Rozdíl bude pouze v tom že aktivní odkaz na Special:MyLanguage/dontmarkup, pojmenovaný 'default' bude červený, protože cílová stránka neexistuje.
- origin
{{Mt|print=dot|o=dontmarkup|t=dontmarkup|en}}- • English (default)
Neexistující cíl
- Zdrojem je překládaná stránka test-translate. Cílem je neexistující cíl dontmarkup, ale překlad výchozí stránky existuje. Zobrazí se červeně zbarvený link na neexistující stránku dontmarkup a za ním aktivní link pojmenovaný 'origin', odkazující na stránku s překladem test-translate/en
{{Mt|print=|o=test-translate|t=dontmarkup|en}}- dontmarkup (origin)
- Pokud překlad výchozí stránky neexistuje, zobrazí se řetězec
origin {{Mt|print=|o=test-translate|t=dontmarkup|ki}}- origin
Parametr print=dot
- Pokud je zdrojem překládaná stránka test-translate a překlad výchozí stránky existuje, zajistí atribut
print=dotto, že se zobrazí červeně zbarvený link na neexistující stránku dontmarkup za kterým bude aktivní link pojmenovaný 'origin', odkazující na stránku s překladem test-translate/en a před tím bude výchozí separátor•
{{Mt|print=dot|o=test-translate|t=dontmarkup|en}}- • dontmarkup (origin)
- Výchozí separátor lze nahradit přes atribut
s=. Chcete-li použít znak svislítko|(který se u šablon využívá jako oddělovač atributů), je třeba využít pomocnou šablonu{{!}}(vykřičník) –{{!}} {{Mt|print=dot|s={{!}}|o=test-translate|t=dontmarkup|en}}- |dontmarkup (origin)
- Neexistující překlad výchozí stránky v kombinaci s atributem
print=dotse bude lišit od výše uvedeného příkladu č. XX tím, že se místo řetězce 'origin' zobrazí název jazyka, a za ním odkaz stránku Special:MyLangugage/dontmarkup, pojmenovaný 'default'. {{Mt|print=dot|o=test-translate|t=dontmarkup|ki}}- • Gĩkũyũ (default)
- <img src="https://disklessui.kapica.cz/wiki/images/0/02/Poznamka.svg" width="5%" resource="./File:Poznamka.svg" style="float: right; margin: 15px 0px 15px 15px;" alt="Poznámka" title="Poznámka">Ten je zbarven červeně, protože stránka dontmarkup neexistuje. Ovšem i kdyby existovala a byl zobrazen modře, je interpretace šablony stejná, protože překlad stránky test-translate není možné vložit do neexistující stránky, i kdyby existoval. Pro dobré porozumění, srovnej rozdíly v interpretaci kódu při použití atributu
print=.
Vliv hodnoty atributu print
Pokud chceme (na základě předaného jazykového kódu) získat nějaké informace, nebo výstup, se kterým můžeme dále pracovat je potřeba použít parametr print= s hodnotou: plain, plaincode, dot, nebo lang.
Nemá-li print= žádnou uvedenou hodnotu, vrací aktivní odkaz na jazykovou podstránku pojmenovanou názvem jazyka. V tomto ukázkovém příkladu odkazující na stránku test-translate/en
{{Mt|print=|o=test-translate|en}}- English
- Pokud žádny překlad do jazyka 'xyz' tahle stránka nemá, nevrací se nic.
{{Mt|print=|o=test-translate|xyz}}
dot
Jak se chová volba print=dot, je-li uvedena výchozí i cílová stránka již demonstruje výše uvedený kód. Následující příklady demonstrují, jak se chová pokud je uvedena pouze výchozí stránka.
v jako řetězec, před který se vloží defaultní separátor který lze parametrem s= "přerazit".
{{Mt|print=dot|en}}- • English
- Je-li výchozí stránka přeložená do uvedeného jazyka, vygeneruje se aktivní link, před který se vloží separátor. Ten lze atributem
s="přerazit" {{Mt|print=dot|o=test-translate|en}}- • English
- V případě, že se výchozí stránka překládá, ale překlad do požadovaného jazyka ještě neexistuje, vrací se jazyk wiki.
{{Mt|print=dot|o=test-translate|fi}}- • čeština
print=langdotcode
Volba print=dotcodedot vrací, podobně jako dot, název jazyka, jako řetězec, před který vloží defaulní separátor co se dá parametrem s= "přerazit". Ale navíc rozšířený o kód jazyka, což usnadní orientaci pokud není z názvu jazyka jasné, jaký používá jazykový kód pro podstránky.
{{Mt|print=dotcode|en}}- • English (en)
Pokud najde také jazykovou podstránku výchozí stránky (o) odpovídající předanému jazykovému kódu, vygeneruje aktivní odkaz, tvořený názvem jazyka a přidaným řetězcem s kódem příslušného jazyka.
{{Mt|print=dotcode|o=test-translate|en}}- • English (en)
Pokud jazykovou podstránku výchozí stránky (o) odpovídající předanému jazykovému kódu nenajde vrátí pouze neaktivní řetězec.
{{Mt|print=dotcode|o=dontmarkup|en}}- • English (en)
Ovšem pokud jazykový kód nebude mít v systému MediaWiki podporu, rovnou ho zahodí.
{{Mt|print=dotcode|o=test-translate|xyz}}{{Mt|print=dotcode|o=dontmarkup|xyz}}
Ovšem zcela jiné chování bude mít v případě, bude-li uveden i parametr t. Pokud nenajde odpovídající jazykovou verzi u výchozí stránky předané atributem o, vždy zobrazí název jazyka, doplněný jazykovým kódem a za ním link pojmenovaný 'default', jehož cílem bude vždy odkaz na cílovou stránku, volanou přes speciální stránku Special:MyLanguage.
{{Mt|print=dotcode|o=dontmarkup|t=test-dontmarkup|kk}}- • қазақша (kk) (default)
A to i v případě, že se výchozí stránka překládá.
{{Mt|print=dotcode|o=test-translate|t=test-dontmarkup|kk}}- • қазақша (kk) (default)
| Šablona se v tomto bodě chová jinak, než je popsáno! |
Rozdíl zaznamenáte jen pokud bude překlad stránky test-translate v příslušném jazyce existovat – pak na něj bude 'default' odkazovat:
{{Mt|print=dotcode|o=test-translate|o=test-dontmarkup|en}}- • English (en) (default)
Nebo když bude cílem neexistující stránka dontmarkup, protože pak bude odkaz zbarven červeně.
{{Mt|print=dotcode|o=test-dontmarkup|t=dontmarkup|en}}- • English (en) (default)
plain
Volba print=plain je určena k rychlé transformaci jazykového kódu na textová řetězec. A jelikož nepracuje s testováním výchozí stránky, je nejrychlejší operací.
Vrací název jazyka (pokud existuje), bez výchozího separátoru.
{{Mt|print=plain|en}}- English
Neexistuje-li překlad příslušného jazyka, vrátí stejný řetězec, takže lze velice jednoduchým působem využít šablonu k testování validity předaného kódu jazyka. Viz ukázková interpterace následujícího kódu:
{{#ifeq:{{{|xyz}}}|{{Mt|print=plain|xyz}}|Neexistující jazykový kód {{{|xyz}}}|}}
Zde je výsledek interpretace: Neexistující jazykový kód xyz Pro ověření validity jazykového kódu v šabloně lze použít jednodušší kód. Místo řetězce 'en' stačí uvést příslušný parametr:
{{#ifeq:en|{{Mt|print=plain|en}}||en}}
Pro 'en' vrátí en a pro 'xyz' – nic. Přímo ve stránce lze samozřejmě použít šablonu rovnou:
{{Mt|print=plain|xyz}}- xyz
Je-li použita výchozí stránka, bude interpretace jiná. Existuje-li překlad výchozí stránky, bude výsledek podobný, jako kdybychom uvedli dot, ale nebude generován aktivní link. Výchozí separátor lze pochopitelně změnit.
{{Mt|print=plain|o=test-translate|en}}- • English
U nepřekládané stránky se nevrátí nic
{{Mt|print=plain|o=test-dontmarkup|en}}
A pro neexistující stránku bude výsledek stejný jako kdybychom žádnou výchozí stránku neuvedli – zobrazí se pouze název jazyka coby řetězec.
{{Mt|print=plain|o=dontmarkup|en}}- English
print=plain se tedy hodí, když chceme vygenerovat seznam jazyků, do kterých už je stránka přetlumočena, aniž by to byly aktivní odkazy.plaincode
Volba print=plaincode se hodí, pokud chceme generovat wiki tabulky s parametrem sortable, protože vždy vrací řetězec tvořený názvem jazyka a jeho jazykovým kódem, doplněný o oddělovač buněk (dvě svislítka za sebou), bez ohledu na to, jestli překlad či stránka existuje.
{{Mt|print=plaincode|en}}- English||en
{{Mt|print=plaincode|o=test-translate|en}}- English||en
{{Mt|print=plaincode|o=test-dontmarkup|en}}- English||en
{{Mt|print=plaincode|o=dontmarkup|en}}- English||en
- Díky tomu nemusíte nic dalšího řešit. Protože umožňuje generovat správnou tabulku, ať je stránka přeložená, nebo ne. Viz příklad:
Lang code page English en test-translate/en English en test-dontmarkup/en English en dontmarkup/en čeština cs test-translate/cs čeština cs test-dontmarkup/cs čeština cs dontmarkup/cs suomi fi test-translate/fi suomi fi test-dontmarkup/fi suomi fi dontmarkup/fi
code
Volba print=code je ideální k vygenerování jazykové lišty s aktivními odkazy na překlady, pojmenované jménem jazyka, protože vrací aktivní link, jedině když překlad do příslušného jazyka existuje.
{{Mt|print=code|en}}{{Mt|print=code|o=test-translate|en}}- English (en)
{{Mt|print=code|o=test-dontmarkup|en}}{{Mt|print=code|o=dontmarkup|en}}- Ideální je v kombinaci s nastaveným separátorem. Viz příklad.
Pro [[Special:MyLanguage/test-translate|test-translate]] je zde {{Mt|print=code|o=test-translate|cs}} {{Mt|print=code|s=,|o=test-translate|en}} {{Mt|print=code|s=,|o=test-translate|sk}} {{Mt|print=code|s=,|o=test-translate|pl}} {{Mt|print=code|s=,|o=test-translate|hu}}
- Pro test-translate je zde čeština (cs),English (en)
- V reálném kódu jdou položky rovnou za sebou, aby se nevkládaly konce řádků, interpretované jako mezery.
lang
Volba print=lang vrací kód jazyka, ale jen pokud jazyková podstránka výchozí stránky odpovídající předanému jazykovému kódu existuje.
{{Mt|print=lang|o=test-translate|en}}- en
Pokud nenajde jazykovou podstránku výchozí stránky (o) odpovídající předanému jazykovému kódu, vrátí řetězec untranslated
{{Mt|print=lang|o=test-translate|xyz}}- untranslated
A pokud výchozí stránka (o) neexistuje vůbec, nevrátí nic.
{{Mt|print=lang|o=dontmarkup|en}}{{Mt|print=lang|o=dontmarkup|xyz}}
Stejný efekt bude mít když se parametr o s výchozí stránkou šabloně {{Mt}} nepředá vůbec.
{{Mt|print=lang|en}}
Nebo když se jí předá pouze jazykový kód.
{{Mt|en}}
Bez cíle
- Zdrojem je překládaná stránka test-translate, překlad existuje a cíl není uveden. Měl by se zobrazit jazyk existujícího překladu.
{{Mt|print=|o=test-translate|en}}- English
S parametrem 'print=dot' jazyk překladu doplněný o separátor
{{Mt|print=dot|o=test-translate|en}}- • English
A parametrem 'print=dotcode' rozšířený o kód jazyka
{{Mt|print=dotcode|o=test-translate|en}}- • English (en)
Případně jenom kód jazyka a separátor, bude-li uvedeno..
{{Mt|print=code|o=test-translate|en}}- English (en)
- Je-li zdrojem překládaná stránka test-translate, ale překlad neexistuje a cíl není uveden. Měl by se zobrazit řetězec untranslated
{{Mt|print=|o=test-translate|ki}}
| Zde má šablona jiné chování než je popsáno. Protože by neměla vracet nic! Situace byla zmíněna již výše. Rozdíl je dán zřejmě tím, že jazyk s kódem 'ki' existuje, kdežto s 'xyz' ne! |
- Stejný efekt by měla mít i nepřekládaná ale existující stránka test-dontmarkup bez uvedeného cíle.
{{Mt|print=|o=test-dontmarkup|ki}}
| Zde má šablona jiné chování než je popsáno (momentálně nevrací nic). Protože by měla vracet odkaz, volaný přes šablonu Special:MyLanguage/test-dontmarkup. |
- Neexistující stránka, by měla vracet červeně zbarvený odkaz dontmarkup.
{{Mt|print=|o=dontmarkup|en}}
{{Mt|s={{!}}|print=|o=test-translate|en}}{{Mt|s={{!}}|print=|o=test-dontmarkup|ki}}- English
Všimněte si, že bez parametru 'print=dot', nemá použití separátoru žádný efekt
{{Mt|s={{!}}|print=dot|o=test-translate|en}}{{Mt|s={{!}}|print=dot|o=test-dontmarkup|ki}}- |English
- |čeština
Odkaz může být doplněn o kód jazyka použijeme-li 'print=dotcode'
{{Mt|s={{!}}|print=dotcode|o=test-translate|en}}{{Mt|s={{!}}|print=dotcode|o=test-dontmarkup|ki}}- |English (en)
- |Gĩkũyũ (ki)
Chceme-li potlačit vygenerování aktivního odkazu, lze použít 'print=plain'
{{Mt|s={{!}}|print=plain|o=test-translate|en}}{{Mt|s={{!}}|print=plain|o=test-dontmarkup|ki}}- |English
- |
A použijeme-li 'print=plaincode', můžeme vytvořit druhý sloupec tabulky, který bude možné setřídit podle kódu jazyka
{{Mt|s={{!}}|print=plaincode|o=test-translate|en}}{{Mt|s={{!}}|print=plaincode|o=test-dontmarkup|ki}}- |English||en
- |Gĩkũyũ||ki
[[test-dontmarkup]]
[[test-translate]]
== test-dontmarkup transclusion ==
{{:test-dontmarkup}}
== test-translate transclusion ==
{{:test-translate}}
test-dontmarkup transclusion
cs
FALSE
{{#ifexist:{{PAGENAME}}/{{PAGELANGUAGE}}|TRUE|FALSE}}
FALSE
{{#ifeq:<languages/>|<languages/>|TRUE|FALSE}}
FALSE
{{#ifeq:<languages />|<languages/>|TRUE|FALSE}}
FALSE
{{#ifeq:<languages exists/>|<languages/>|TRUE|FALSE}}
<translate>Testovací stránka. Neoznačovat k překladu!</translate>
test-translate transclusion
cs
FALSE
{{#ifexist:{{PAGENAME}}/{{PAGELANGUAGE}}|TRUE|FALSE}}
FALSE
{{#ifeq:<languages/>|<languages/>|TRUE|FALSE}}
FALSE
{{#ifeq:<languages />|<languages/>|TRUE|FALSE}}
FALSE
{{#ifeq:<languages exists/>|<languages/>|TRUE|FALSE}}
<languages />

<translate> Fréttinga is a small municipality in MungoLand, located on the BaMungo island.</translate> <translate> It hosts a population of about 400 people. It has some agriculture and fishing and tourists like to visit it in the summertime.</translate> <translate> It has marvelous beaches with a lot of [[<tvar|1>Special:MyLanguage/Seagull</>|seagulls]].</translate>
<translate>
Services
</translate>
<translate> It doesn't have many services.</translate> <translate> There is a shop, and a car ferry visits the island from the mainland once a day.</translate>
<translate> Main events:</translate>
- <translate> The roof of the church fell down in 2009</translate>
- <translate> New church was built in 1877</translate>