Help:Extension:Translate/Group configuration example/cs

Tento návod je určen vývojářům a pokročilým administrátorům překladů. Rozebírá se zde, jak vytvořit nový konfigurační soubor pro překladatelské rozhraní a všechny podrobnosti a praktické aspekty s tím spojené. Má být používán společně s eskupinovou konfigurační referenční příručkou a vývojáři rozšíření vám rádi pomohou s jakýmikoli otázkami, které budete mít po prostudování tohoto návodu.

Předpoklady

 * rozšíření Translate a
 * jej.
 * jej.

Tento návod byl vytvořen na základě revize r97948 (23. 9. 2011).

Tento návod popisuje proces povolení překladu pro některé části projektu MyBB. Podobným postupem můžete přidávat další projekty/soubory k překladu. Některé věci jsou pro translatewiki.net specifické a měli byste přirozeně použít to, co je ve vašem případě relevantní, namísto slepého následování kroků tohoto návodu.

Krok 1: Podívejte se na zdrojový kód
Pojďme se podívat na zdrojový kód MyBB s použitím  jako pracovního adresáře, což je v tomto příkladu.

Nyní musíme najít soubory obsahující zprávy. Jsou v podadresáři  a zdrojové zprávy v angličtině najdete v podadresáři.

Začněme tedy, prvním lokalizačním souborem našeho projektu.

Krok 2: Podpora formátu souboru
V našem instalačním adresáři MediaWiki pod  a    můžeme vidět třídy pro podporu formátů souborů, které se používají k mapování skupin zpráv na lokalizační soubory každého projektu. Abyste skutečně viděli, jaké formáty jsou podporovány, musíte se v tom trochu pohrabat. Takže jsme se prostě rozhodli nejprve zkusit použít třídu FlatPhpFFS a uvidíme, jak dobře funguje s naším souborem PHP.

Máme tedy soubor k mapování a zvolili jsme pro něj třídu FFS. Nyní musíme napsat konfiguraci skupiny. To je soubor YAML.

V můžete najít odkaz na. Začněme s minimálním souborem uvedeným jako příklad pro sekci BASIC.

Můžeme pokračovat a jednoduše nahradit ukázkový text našimi vlastními hodnotami.

Popis přijímá veškerou syntaxi wikitextu. Jeden pěkný trik ukázaný v původním příkladu je ten, že jej můžete přeložit pomocí. Pak ale musíte definovat výchozí text na stránce MediaWiki:Message-key. Všimněte si, že ID jmenného prostoru se přidává prostřednictvím jeho konstanty, viz jak používat vlastní jmenné prostory.

Potřebujeme ještě jednu věc: Sekci. Opět vycházíme z příkladu uvedeného v dokumentaci:

Hmm,  je kód jazyka, jako   ve výchozím nastavení. Prozatím nechceme měnit adresářovou strukturu používanou MyBB. Místo toho můžeme použít funkci určenou pro tento účel: Mapu kódu, která nám umožňuje mapovat kódy jazyků každého jazyka na identifikátory používané naším projektem.

Takže končíme takto:

V podstatě to říká, že pro kód  bude   výše , což je adresář pro soubory zpráv v angličtině. Klíč  je obvykle stejný jako , ale bez předpony.

Dobře. Nyní uložme tento soubor někam, například do stejné složky, kde je uložen, s názvem. Celý soubor je:

Potom musíme říci naší příponě, aby si tento soubor přečetla. Přidejte následující řádek do :

Poté spusťte skript  podle pokynů na.

Pojďme se tedy přihlásit. Ujistěte se, že uživatel má správně nakonfigurováno právo "překládat-spravovat" a přejděte na Special:ManageMessageGroups.

Můžete vidět toto:

No valid namespace defined, got NS_MYBB. Backtrace: <...>

V tomto případě byste při pozorném čtení dokumentace mohli zjistit, že je potřeba, aby se nový jmenný prostor registroval na MediaWiki, přidat následující řádek do :

V tomto příkladu je použito 1246, ale můžete si vybrat libovolné volné číslo jmenného prostoru, které potřebujete. Pro rozšíření Translate vám doporučujeme používat sudá čísla jmenného prostoru 1200-1298.

Pokud nyní znovu načtete speciální stránku ManageMessageGroups, měli byste vidět řádek, který říká:

MyBB This message group has not been imported previously.

Klikněte na odkaz MyBB. Poté uvidíte seznam zpráv, které jsou v tomto souboru. Pokud jste s výsledky spokojeni, klikněte na "Provést" (execute).

Po kliknutí na "Provést" se soubor zpracuje a zobrazí se výstup podobný tomuto:

Imported new version of page MyBB:L\x5b'boardstats'\x5d/en. Imported new version of page MyBB:L\x5b'new posts'\x5d/en. Imported new version of page MyBB:L\x5b'no new posts'\x5d/en. ... Cache rebuild. All done!

Pokud je soubor velmi velký, musíte nejprve spustit, protože webové rozhraní může importovat pouze omezený počet zpráv najednou kvůli časovému limitu PHP. Pokud narazíte na tento limit, můžete kliknout na tlačítko v dolní části stránky a importovat zbývající zprávy.

Krok 3: Přidání dalšího souboru
Nyní přidáme druhý soubor pro MyBB pro překlad. To lze provést dvěma způsoby:

Přístup 1: Přidání nového souboru YAML
Jednoduše přidejte nový soubor YAML a uložte jej pod novým názvem. Poté jej zavolejte zevnitř  a postupujte podle všech výše uvedených kroků. Soubor bude vypadat nějak takto:

Jak je zřejmé z výše uvedeného příkladu, musíte pro tuto novou skupinu použít jiné ID.

I když je tento přístup snadný, nečlení se na stovky různých překladových jednotek (tj. souborů mapovaných do jejich skupiny zpráv). V určitém okamžiku potřebujete aktualizovat nějakou hodnotu a dělat to pro všechny ty soubory není žádná legrace. Naštěstí existuje jiný způsob, který je uveden níže.

Přístup 2: Syntaxe TEMPLATE
Myšlenka je taková, že do šablony vtáhneme společné hodnoty. Poté každá skupina převezme chybějící hodnoty ze šablony a není třeba je opakovat pro každou skupinu.

Vraťme se k příkladu MyBB. Řekněme, že chcete do přeložitelných zpráv zahrnout,   a. Soubor YAML je třeba aktualizovat takto:

Jak je zřejmé z výše uvedeného příkladu,  je definován pouze jednou. Přidávání a odebírání souborů je stejně snadné jako přidání nebo odebrání části ve výše uvedeném souboru.

Pokud nyní přejdete na speciální stránku ManageMessageGroups, uvidíte tři položky, jako jsou tyto:

MyBB global messages: This message group has not been imported previously. MyBB index page: This message group has not been imported previously. MyBB show thread: This message group has not been imported previously.

Pokud je do vašeho projektu zahrnuto mnoho souborů, může být dobré napsat skript, který vám váš soubor YAML vygeneruje. Příklad najdete na trunk/translatewiki/StatusNet/genStatusNet-plugins.php.

Krok 4: Zdrojová skupina
Přidání zdrojové skupiny a definování souborů zpráv jako jejích podskupin má dvě výhody:


 * Méně práce pro překladatele při výběru různých skupin zpráv, zejména při údržbě. Překladatelé mohou jednoduše otevřít agregovanou skupinu a přeložit nebo aktualizovat vše, co potřebuje aktualizaci nebo překlad pro všechny skupiny.
 * Statistiky lze vykazovat na agregované úrovni skupiny, tzn. celý projekt.

Abyste mohli definovat agregovanou skupinu, musíte přidat následující sekci hned za sekci TEMPLATE a před definici jednotlivých podskupin:

Tím se dostáváme docela blízko, ale stále chybí jeden krok. V tomto okamžiku, pokud přejdete na Special:Translate, uvidíte nadřazenou skupinu MyBB (a ta ve skutečnosti funguje!), ale také podskupiny uvedené jako samostatné skupiny. :(

Je způsob, jak to opravit. Přidejte následující řádek do :



Tím vezme všechny skupiny, jejichž ID odpovídá danému vzoru, zobrazí první skupinu a skryje vše ostatní pod touto první skupinou. Trochu ošklivé, ale funguje to. Tato konstrukce podporuje pouze dvě vrstvy, i když skupiny agregátů mohou být součástí jiných skupin agregátů.

Pokud nyní přejdete na Special:Translate, uvidíte v seznamu pouze nadřazenou skupinu MyBB. Navíc uvidíte odkaz "Zobrazit 3 podskupiny". Kliknutím na něj zobrazíte názvy podskupin.

Podívejte se na příručku pro TAGS a další sekce, kterými jsme v tomto dokumentu neprošli.

Krok 5: Čištění
Soubory YAML projektů podporovaných translatewiki.net jsou uloženy v repozitáři na Git.

V translatewiki.net jsou řádky  ve skutečnosti v. Sandboxwiki na translatewiki.net nemá soubor, proto jsme vše přidali do.