Portál AbcLinuxu, 4. května 2025 09:19
Chvalte boha na výsostech! Vy všichni které serou moje blogposty na téma práce s MediaWiki, jelikož tento blog je na tohle téma zaručeně poslední – v tomto roce. Spadly vám koutky? Nezoufejte. Bude hůř. Tématem bude, jak jinak, problematika multijazyčné wiki.
Jak jsem zmínil posledně, intenzivně pracuji na lokalizaci stránek, nezbytně nutných pro to, aby uživatel pochopil jak multijazyčná wiki funguje a které triky se při tom využívají. A i když se to někomu bude zdát možná troufalé, jsem o krok dál než správci MediaWiki.org, kteří cesty jimiž jsem prošel teprve hledají.
Mám totiž oproti nim jednu obrovskou výhodu – ve svojí wiki si mohu dělat co chci. Nemusím nikomu zdlouhavě vysvětlovat, proč stojí některé použité rozšíření za hovno. Nebo se doprošovat, aby mi někdo blahosklonně doinstaloval rozšíření, které mi přidá potřebnou funkcionalitu. Použiju co se mi hodí a pokud se ukáže, že to stojí za prd, tak to zase vyhodím. Držím se pokud možno zásady, nezasahovat do distribučního kódu MediaWiki, a když mi potřebnou funkcionalitu nenabídne, tak si ji mohu dopsat jako rozšíření.
V maximální míře využívám toho, co systém MediaWiki nabízí sám o sobě, a vždy sáhnu raději po standardním, dlouhodobě udržovaném rozšíření než abych zasahoval do kódu. Takže i záležitosti ohledně lokalizace řeším výhradně přes šablony psané ve wiki kódu. Bohužel správci projektů WikiMedie jdou trochu jinou cestou. Většina šablon se dnes již generuje přes moduly interpretované přes Scribunto, takže i když bych se rád o své know-how podělil, prakticky to není možné. Chybí jim totiž rozšíření s nimiž pracuji. Upřímně řečeno nechápu proč, jelikož jde o rozšíření co umožňují v šablonách psaných ve wiki kódu používat proměnné. Ale to není můj problém.
Tento zápis je pouze o tom co je možné.
To, že anonymní návštěvník MediaWiki.org nemá možnost změnit jazyk mě neskutečně irituje. Protože u mojí wiki anonymní návštěvník tuhle možnost má a žádnou extra zátěž to nepřináší.
Jsem toho názoru, že pokud by to bylo možné, přilákalo by to mnohem víc potenciálních překladatelů dokumentace. Fakt nechápu, proč tak triviální věc, která je u multijazyčné wiki klíčová, není možná.
Problematika kategorizace lokalizovaných stránek na vás vyleze v plné nahotě, pokud je vaše wiki skutečně multijazyčná. Tj. pokud obsahuje stránky které jsou nativně psané v jiném jazyce, než je výchozí jazyk vaší MediaWiki.
Na MediaWiki.org na tuhle problematiku nejspíš hned tak nenarazí, protože se její obsah píše výhradně ve výchozím jazyce, tj. v angličtině. Ovšem na wiki, která mixuje obsah psaný v různých jazycích to bude nejspíš to první, co vám začne vadit.
Každopádně na MediaWiki.org vám s tím nikdo nepomůže.
Abyste pochopili v plném rozsahu, v čem spočívá záludnost kategorizace lokalizovaných stránek, doporučuji k přečtení můj manuál o kategorizaci lokalizovaných stránek.
V samotném závěru tohoto blogpostu píšu, jak to dopadlo, když jsem převzal šablonu z anglické wikipedie. A nebylo to poprvé co jsem pohořel, když jsem se pokusil adaptovat nějakou šablonu na kterou narazíte u WikiMedia projektů.
Na MediaWiki.org existuje šablona Template:Localized link, která využívá speciální stránku Special:MyLanguage
. Ta generuje lokalizované odkazy – pokud je název cílové stránky přeložen, použije ho.
Jenže to má jeden hák. Ta speciální stránka funguje jen v tom případě, že jde o stránku která je napsaná ve výchozím jazyce wiki. Pochopitelně na MediaWiki.org to nikoho netrápí, protože výchozím jazykem všech stránek je angličtina. Jenže u mne to nefungovalo.
Nezbylo mi, než si na to napsat šablonu vlastní. Jak ta šablona funguje, včetně příkladů reálného použití, můžete vidět na její dokumentační stránce.
Jakmile se mi podařilo uspokojivě vyřešit problém lokalizovaných odkazů, bylo možné začít pracovat na lokalizaci nápovědy a dokumentace k šablonám.
Ovšem to by jeden nevěřil, co všechno je nutné vyřešit, pokud chcete lokalizovat podstránky. Bylo to však nutné, abych vůbec mohl ve psaní lokalizovatelné dokumentace pokračovat.
Před zajímavé problémy vás postaví také lokalizace kategorií. Z MediaWiki.org byste mohli nabýt dojmu, že na tom nic není. Na první pohled se zdá všechno ok. Ovšem jen do chvíle, než si uvědomíte, že se u jiné jazykové verze kategorie zobrazují pouze stránky přeložené do příslušného jazyka.
Což o to, na MediaWiki.org je překladatelská komunita poměrně aktivní. Jenže u wiki, která má jen několik desítek uživatelů, ze kterých je pouhá hrstka schopna něco překládat, bych se toho také nemusel dožít. Nehledě na to, že mám ve wiki hromadu stránek, které se ani překládat nebudou. Vyřešil jsem tedy situaci jinak.
Naštěstí existuje rozšíření DPL (psal jsem o něm před šesti lety), které umí vygenerovat seznam stránek z vybrané kategorie. Nevypadá sice zcela identicky, jako nativně generovaný seznam MediaWiki, ale to není podstatné. Pro mne je důležité, že to nemusím dál řešit.
Zatím mám těch kategorií přeložených jen pár, tak jen pro ilustraci uvádím link na kategorii pro lokalizované šablony (šablony, které samy pracují s lokalizací obsahu).
Úplnou náhodou jsem zjistil, jak zákeřnou šablonu jsem zkopíroval z anglické wikipedie. Zmínil jsem se o ní loni, v zápise který pojednával o tom jak dělám výřezy z obrázků. Šablonu Template:Annotated_image jsem tehdy zkoušel jen na testovací stránce, která je pro anonymní uživatele nedostupná. Nikde jinde.
Až nyní, kdy byla tato testovací stránka použita u jednoduché transkluze, se ukázalo, že ta šablona funguje nějak divně. Generování jednoho pitomého výřezu – operace, kterou prostřednictvím šablony Image dělám zcela běžně – sežralo na několik minut většinu výkonu serveru. Vyzkoušel jsem tedy vygenerování stejného výřezu přes svoji šablonu. Výsledek byl ihned a zatížení serveru nula nula prd. Fakt nechápu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.