test-insert

Z thewoodcraft.org

Š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.
print
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
Můžeme toho využít, pokud chceme použít výstup jako parametr šablony, která zobrazí zprávu s informací a prosbou o překlad, která bude viditelná jen dokud NEBUDE existovat překlad v jazyce identifikovaném příslušným kódem
PříkladAplikace šablony v kódu vypadá např. takto.
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í:

  1. Můžete obsah stránky test-dontmarkup, překládat přes systémové zprávy.
  2. 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.
  3. 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.

Parametrizovaná šablona {{test-mt}} není jednoduchá. Uvědomte si, že jsem ji vytvořil jen proto, abych naplno demonstroval možnosti využití šablony {{Mt}}. Většina šablon tak složitá není a také se do nich po dokončení už obvykle znovu nehrabe.
(Poznamenal Keny)
{{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 tisotarget 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=dot|o=test-translate|t=test-translate|en}}
tiso
U nepřeloženého zdroje je odchycena duplicita na nižšší úrovni. Nezkoumá se už schoda s cílem, protože je třeba řešit výchozí stránku, proto se vrací řetězec origin. Podobná situace se bude opakovat v situaci, kdy výchozí stránka (origin) nebude existovat.
{{Mt|print=|o=test-dontmarkup|t=test-dontmarkup|en}}
origin
{{Mt|print=dot|o=test-dontmarkup|t=test-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=dot to, ž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=dot se 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)
PoznámkaTen 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

dot
Vrací, pokud jazyk existuje, jeho název jako řetězec, před který se vloží defaulní separátor který lze atributem 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

plain

plain
Bez výchozí stránky vrazí 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
Parametr 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

lang
vrací kód jazyka, pokud jazyková podstránka existuje, untranslated pokud neexistuje, nebo nic pokud neexistuje ani ta stránka
{{Mt|print=lang|o=test-translate|en}}
en
untranslated
{{Mt|print=lang|o=test-translate|en}}
{{Mt|print=lang|o=dontmarkup|en}}
{{Mt|print=lang|o=dontmarkup|xyz}}

Výsledek je stejný, jako bychom parametr o s výchozí stránou vůbec nepředali.

{{Mt|print=lang|en}}

Předáme-li jí pouze jazykový kód, nezobrazí nic.

{{Mt|en}}

dotcode

dotcode
Vrací stejný výsledek jako dot, ale rozšířený o kód jazyka, což usnadní orientaci u jazyků, kde není jasné abecední třídění.
  • Zdrojem je neexistující stránka dontmarkup, odkazující na existující cíl. Měl by se zobrazit název kódu jazyka...
{{Mt|print=|o=dontmarkup|t=test-dontmarkup|en}}
origin

nebo název jazyka a separátor...

{{Mt|print=dot|o=dontmarkup|t=test-dontmarkup|en}}
• English (default)

nebo kód jazyka a separátor...

• English (en) (default)

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}}
  • 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}}
  • Neexistující stránka, by měla vracet červeně zbarvený odkaz dontmarkup.
{{Mt|print=|o=dontmarkup|en}}
Pro použití v tabulkách, k setřídění podle jazyka se hodí..
{{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

S cílem ale bez překladu

Je-li zdrojem stránka nepřekládaná, nebo bez překladu test-dontmarkup a cílem překládaná test-translate. Měl by se zobrazit řetezec non-translatable

{{Mt|print=|o=test-dontmarkup|t=test-translate|en}}
origin
{{Mt|print=|o=test-dontmarkup|t=test-translate|ki}}
origin

Ale pokud bude uveden parametr 'print=dot', nemělo by se zobrazovat nic

{{Mt|print=dor|o=test-dontmarkup|t=test-translate|en}}
• English (default)
{{Mt|print=|o=test-dontmarkup|t=test-translate|ki}}
• Gĩkũyũ (default)
[[test-dontmarkup]]

[[test-translate]]
== test-dontmarkup transclusion ==
{{:test-dontmarkup}}
== test-translate transclusion ==
{{:test-translate}}

test-dontmarkup

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> A typical view of Fréttinga</translate>

<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>


1>Fréttinga</> page and used for demonstrate as Translate do <tvar