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!
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().