Jump to content

Nápověda:Rozšíření:Translate/Překlad nestrukturovaných elementů

From mediawiki.org
This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 100% complete.

Tato stránka vysvětluje, jak lze s pomocí rozšíření Translate spravovat překlady textů uživatelsky upraveného rozhraní wiki. Postup lze použít na libovolném místě wiki, u kterého budete chtít nabízet automatický překlad podle zvoleného jazyka uživatelského rozhraní. Typickým místem pro jeho využití je postranní panel. Ten může být vždy jen jeden. Stejnou metodu lze použít i k překladu obsahu hlavní stránky, pokud chcete mít všechny překlady jejího textu uloženy pod stejným názvem, nebo u šablon.

Metodu lze použít i k překladu textového obsahu komplikovaných stránek, jako jsou stránky s komplikovaným formátováním nebo šablonami, a vy jimi nechcete moc zatěžovat jejich překladatele. Vše se točí kolem zpráv rozhraní a použití kouzelného slůvka {{int:}} pro systémové zprávy, které můžete použít všude tam, kde lze použít wiki editaci textu. Toto kouzelné slůvko umožňuje automaticky nahrazovat řetězec zprávou, odpovídající zvolenému jazyku rozhraní.

Při správné automatické detekci jazyka rozhraní je to bez problémů, ale neřeší to problém anonymních uživatelů wiki, kteří nemají možnost změnit jazyk rozhraní. Viz odstavec Volba jazyka uvedený níže.

Ve srovnání s běžným překladem stránek má tato metoda několik úskalí:

  1. Vývojáři MediaWiki obvykle nedoporučují používat {{int:}}, jelikož tím dochází k fragmentaci stránky při kešování. Místo jedné vygenerované verze stránky, jich tak může být v mezipaměti uloženo i několik set, protože se generují pro každou jazykovou verzi stránky, kde je {{int:}} použito.
  2. Je také komplikovanější nastavení skupiny zpráv, jelikož vyžaduje přístup ke konfiguračnímu souboru wiki na straně serveru.
  3. U zpráv překládaných touto metodou také nelze automaticky sledovat zastarávání překladů a statistika stavu dokončení překladu nezaznamená žádnou změnu, je-li přidaná nová, nebo naopak odstraněna některá stará, zpráva.
  4. Navíc ke zprávám rozhraní může přistupovat pouze uživatel, který je členem oprávněné skupiny. Takže je tato metoda vhodná jen pro stránky, jejichž obsah se moc často nemění, protože jinak s tím bude dost práce.

Dobrá věc je, že to funguje a stránka i s neaktuálním překladem vypadá jako by byla hotová. Následující dva uvedené postupy zobrazují obvyklé využití této metody. Předchází jim část věnovaná tomu, jak nastavit skupinu zpráv, která je v tomto případě nezbytná, aby bylo možné zprávy rozhraní překládat přes Translate.

Nastavení

Tento krok může udělat jen administrátor serveru na kterém wiki běží, jelikož následující kód se musí vložit do souboru LocalSettings.php :

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Postranní panel' );
	$mg->setDescription( 'Zprávy použité v postranním panelu této wiki.' );
	$list[$id] = $mg;
	return true;
};

Identifikátor této skupiny zpráv, wiki-sidebar, musí být unikátní a neměl by kolidovat s některou již existující zprávou. Druhý parametr sidebar-messages, který se předává konstruktoru WikiMessageGroup, odkazuje na stránku [[MediaWiki:Sidebar-messages]]. Návěští, nastavené přes setLabel se bude zobrazovat v nejrůznějších rozbalovacích nabídkách, a všude tam, kde se dá vybrat skupina zpráv. Popis se bude zobrazovat na stránce Special:Translate. Toto jsou hodnoty, které musíte upravit, pokud chcete do své wiki přidat nějakou novou skupinu vlastních zpráv.

Postup lokalizace postranního panelu

Předpokládejme, že byla vytvořena skupina zpráv. V takovém případě se nejprve seznamte s postupy pro uživatelskou úpravu postranního panelu. Pro zjednodušení předpokládejme, že jste vytvořili tuto velice jednoduchou nabídku:

* sidebar-commonpages
** FAQ|sidebar-faq

A dvě stránky ve jmenném prostoru MediaWiki. Stránka [[MediaWiki:Sidebar-commonpages]] obsahuje text Common pages a stránka [[MediaWiki:Sidebar-faq]] obsahuje text Frequently asked questions.

Jediné co musíte udělat je, že do stránky [[MediaWiki:Sidebar-messages]] (jméno se bude pochopitelně lišit, pokud jste v nastavení skupiny zpráv použili něco jiného) zapíšete:

sidebar-commonpages sidebar-faq

Jak vidíte, jsou to názvy textových řetězců systémových zpráv, ovšem bez prefixu jmenného prostoru "MediaWiki:", oddělené mezerou.

Pak přejdete na stránku [[Special:Translate/wiki-sidebar]] (jméno odpovídá identifikátoru skupiny zpráv, který jste použili v nastavení - jaké máte nakonfigurované skupiny zpráv zjistíte na stránce [[Special:Translate]]) a můžete začít s překladem textových zpráv do jiných jazyků. Pamatujte, že ke zprávám ve jmenném prostoru MediaWiki má přístup pouze správce rozhraní. Nikdo jiný tyto zprávy zakládat, upravovat a překládat nemůže.

Postup lokalizace hlavní stránky

Dalším ukázkovým příkladem je stránka s velkým počtem formátovacích značek či šablon. Výhodou této metody je, že se jazyk stránky automaticky zobrazí podle jazykového nastavení uživatelského rozhraní. Problém je pouze to, že jazyk přeložené stránky lze změnit pouze přepnutím jazyka uživatelského rozhraní.

Postup je stejný jako u předchozího postupu:

  1. V konfiguraci nastavte skupinu pro nové zprávy.
  2. Otevřete hlavní stránku.
  3. Nahraďte každou část, kterou chcete přeložit, řetězcem {{int:Mainpage-messagename}}. Původní text přesuňte na stránku [[MediaWiki:Mainpage-messagename]].
  4. Přejděte na stránku [[MediaWiki:Mainpage-messages]] (nebo tu, jakou jste nastavili v konfiguraci) a přidejte tam názvy zpráv oddělené mezerou.
  5. Jste-li hotovi, přejděte na stránku [[Special:Translate]] a můžete začít text hlavní stránky překládat.

Zde je příklad. Řekněme, že [[Main Page]] obsahuje:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} je společnost kuchařů a pekařů milujících čokoládu.''
</div>
Aktuálně tu máme {{NUMBEROFPAGES}} stránek plných čokolády.

Nahraďte textové řetězce za:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Vytvořte stránku [[MediaWiki:Mainpage-slogan]] s následujícím obsahem:

{{SITENAME}} je společnost kuchařů a pekařů milujících čokoládu.

Dále vytvořte stránku [[MediaWiki:Mainpage-pagecount]] s textem:

Aktuálně tu máme {{NUMBEROFPAGES}} stránek plných čokolády.

Na stránku [[MediaWiki:Mainpage-messages]] přidejte:

mainpage-slogan mainpage-pagecount

Jste hotovi! Kdykoliv můžete přidat text nový text, či změnit nebo odstranit některý ze stávajících textů.

Výběr jazyka

Za normálních okolností může měnit jazykové nastavení pouze přihlášený uživatel ve svém profilu. Anonymní uživatelé jazykové nastavení uživatelského rozhraní měnit nemohou. Přeložené stránky jim tím pádem bude wiki primárně nabízet v jazyce výchozího obsahu, pokud nedáte anonymním uživatelům možnost, zvolit jiný jazyk.

Naštěstí ale existuje řešení. Rozšíření UniversalLanguageSelector , kromě toho že automaticky použije preferovaný jazyk webového prohlížeče uživatele, mu umožňuje také zvolit jazyk jiný a tuto volbu uložit do souboru cookie, bez toho že by bylo nutné použít triku s parametrem uselang v URL, který se hodí hlavně když potřebujete zjistit identifikátor překládaného řetězce.