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 PmWiki: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().

Poslední úprava stránky: 29.09.2007, 11:29