Internacionalizace

PmWiki podporuje internacionalizaci webových stránek, umožňuje aby se v názvech stránek nacházeli znaky s diakritikou a téměř zcela lokálně přizpůsobilo systémové hlášení PmWiki. Většina těchto přizpůsobení se v PmWiki vyřeší funkcí `XLPage(), která načítá sadu překladových proměnných z wiki stránky (typicky pomenované `XLPage, ale může se jmenovat i jinak).

Načítání stránek s překladem

Stránky pro mnohé jazyky jako francouzština, němčina, holadnština a španělština už jsou vytvořené a udržované na webové stránce pmichaud.com. Archiv těchto překladů si můžete stáhnout z http://pmichaud.com/pub/pmwiki/i18n/ (a vyberte si český balíček, má ve jméně cs). Jednoduše rozbalte archiv do adresáře obsahujícího vaši instalaci pmwiki.php. Archiv obsahuje množství souborů stránek, které jsou umístěny ve vašem adresářiwikilib.d/, a některé speciální skripty pro překlady,, které používají jinou znakovou sadu než iso-8859-1 (výchozí kódování PmWiki).

Když jsou stránky s překlady nainstalované (tj. nakopírované), jazyk zapnete přidání volání `XLPage() do svého souboru config.php. Například, pro volbu francouzských hlášení bychom uvedli

XLPage('fr','PmWikiFr.XLPage');

což udává, že je třeba načítat překlady pro francouzštinu ('fr') ze stránky `PmWikiFr.XLPage. Pro český překlad použijete:

XLPage('cs','PmWikiCs.XLPage');
 Je zcela v pořádku načítat několik stránek; takže pokud chcete vytvořit vlastní lokální překlady beze změn těch získaných z i18n.tgz, vytvořte pouze další stránku (viz níže) a načítejte ji nejprve. Ujistěte se, že nejprve načítáte stránku s vašimi ístními změnami!!:
XLPage('fr','PmWikiFr.XLPageLocal');  # moje osobní překlady
XLPage('fr','PmWikiFr.XLPage');       # z i18n.tgz

Pokud máte v úmyslu provozovat svoje webové stránky ve více jazycích a používat (Wiki skupiny?) jako selektory jazyků, budete chtít pravděpodobně umístit tento kód do souborů s lokálními úpravami (viz Nastavení pro skupiny?). Například, pokud je vaše stránka dostupná francouzsky a anglicky a francouzské stránky jsou ve skupině pojmenované Fr, vytvořili byste soubor pojmenovaný Fr.php v adresáři local/ který by obsahoval:

<?php if (!defined('PmWiki')) exit();
##zmena do francuzskeho jazyka
XLPage('fr','PmWikiFr.XLPage');

Můžete chtít vytvořit stránku nazvanou `PmwikiFr.php se stejným obsahem pro přístup k francouzské dokumentaci ve skupině `PmwikiFr. En.php v tomto případe není potřeba, neboť angličtina je výchozí předvolený jazyk.

Alternativa k výše uvedenému by bylo přidat do config.php následující kód, který testuje zda ve skupině existuje `XLPage, a pokud ji najde, načítá ji:

    
$xlpage = FmtPageName('$Group.XLPage', $pagename);
if (PageExists($xlpage)) XLPage($xlpage, $xlpage);

S touto metodou dokážete přiřadit příslušnou `XLPage do jakékoli skupiny, která potřebuje jinou jazykovou podporu.

Tvorba nových překladů

Pokud pro vámi požadovaný jazyk neexistují stránky jazyka, ke lehké je vytvořit! Překldaový soubor `XLPage obsahuje řádky ve tvaru

'výraz' => 'přeložený výraz',

kde "výraz" je internacionalizovaný výraz (označený pomocí $[výraz]) v $...Fmt proměnných PmWiki, a "přeložený výraz" je to, co by se mělo zobrazit ve vašem konkrétním jazyce. Například, řádek (v PmWikiFr.XLPage)

'SearchWiki' => 'Rechercher',

převede na výstupu "$[SearchWiki]" na "Rechercher". Soubor Localization:XLPageTemplate je dobrý výchozí bod pro tvorbu nové stránky `XLPage a již v sobě obsahuje většinu klíčových výrazů PmWiki. Všimněte si, že překladový mechanismus převádí jen výrazy, které jsou uvedené jako přeložitelné v řetězcích $...Fmt --nepřeloží normální text ve formátovaní wiki.

Pokud vytvoříte nové verze stránek PmWiki v jiných jazycích, prosím uvažujte o jejich přidání na hlavní stránku PmWiki tak aby byli přístupné ostatním v archívu i18n.tgz!

Pojem "i18n" se běžně používá jako zkratka anglického slova "internationalization" (internacionalizace). Zkratka je odvozená od skutečnosti, že mezi "i" a koncovým "n" je 18 písmen a jen málo lidí je chce všechny psát...

Nástroje pro lokalizaci PmWiki

Můžete pomoci lokalizovat PmWiki do svého jazyka na původní stránce:

<< Vlastní WikiStyly | Index dokumentace | Lokální nastavení >>

OT: Když mám wiki internacionalizovanou pomocí config.php, jak vrátím některou konkrétní skupinu do angličitny?

OD: Použijte $XLLangs = array('en'); v konfiguračním souboru group.php.

OT: Co představuje první parameter této funkce? Jak může být použitý?

OD:

Mechanizmus XLPage umožňuje načítat více sad překladů a první parametr se používá na jejich rozlišení.

Například, předpokládajme, že chceme mít překlady pro normální francouzštinu i pro "kanadskou" francouzštinu. Namísto udržování dvou zcela samostatných sad stránek, bychom mohli udělat:

    XLPage('fr', 'PmWikiFr.XLPage');
    XLPage('fr-ca', 'PmWikiFrCa.XLPage');

PmWikiFr.XLPage by obsahovala všechny překlady ve standartní francouzštině, zatímco co PmWikiFrCA.XLPage by mohla obsahovat jen překlady "specifické pro Kanadu" -- tj., ty, které jsou odlišné od těch na francouzské stránce.

První parameter odlišuje dvě sady překladů. Navíc, skript config.php může použít proměnnou $XLLangs na úpravu pořadí překladu, takže pokud byla skupina nebo stránka kde jsem chtě překlad pouze ve standartní francouzštině, mohu nastavit:

    $XLLangs = array('fr', 'en');

a Pmwiki použije pouze 'fr' a 'en' překlady (v tomto pořadí), nezáleží na tom kolik překladů bylo načteno pomocí XLPage().