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 pizpsobilo systémové hlášení PmWiki. Vtšina tchto pizpsobení se v PmWiki vyeší funkcí XLPage(), která naítá sadu pekladových promnných z wiki stránky (typicky pomenované XLPage, ale mže se jmenovat i jinak).
Naítání stránek s pekladem
Stránky pro mnohé jazyky jako francouzština, nmina, holadnština a španlština už jsou vytvoené a udržované na webové stránce pmichaud.com. Archiv tchto peklad 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ístny ve vašem adresáiwikilib.d/, a nkteré speciální skripty pro peklady,, které používají jinou znakovou sadu než iso-8859-1 (výchozí kódování PmWiki).
Když jsou stránky s peklady nainstalované (tj. nakopírované), jazyk zapnete pidá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 teba naítat peklady pro francouzštinu ('fr') ze stránky PmWikiFr.XLPage. Pro eský peklad použijete:
XLPage('cs','PmWikiCs.XLPage');
Je zcela v poádku naítat nkolik stránek; takže pokud chcete vytvoit vlastní lokální peklady beze zmn tch získaných z i18n.tgz, vytvote pouze další stránku (viz níže) a naítejte ji nejprve. Ujistte se, že nejprve naítáte stránku s vašimi ístními zmnami!!:
XLPage('fr','PmWikiFr.XLPageLocal'); # moje osobní peklady
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 pravdpodobn 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, vytvoili 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 vytvoit 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í poteba, nebo anglitina je výchozí pedvolený jazyk.
Alternativa k výše uvedenému by bylo pidat 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 piadit píslušnou XLPage do jakékoli skupiny, která potebuje jinou jazykovou podporu.
Tvorba nových peklad
Pokud pro vámi požadovaný jazyk neexistují stránky jazyka, ke lehké je vytvoit! Pekldaový soubor XLPage obsahuje ádky ve tvaru
'výraz' => 'peložený výraz',
kde "výraz" je internacionalizovaný výraz (oznaený pomocí $[výraz]
) v $...Fmt promnných PmWiki, a "peložený výraz" je to, co by se mlo zobrazit ve vašem konkrétním jazyce. Napíklad, ádek (v PmWikiFr.XLPage
)
'SearchWiki' => 'Rechercher',
pevede 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 vtšinu klíových výraz PmWiki. Všimnte si, že pekladový mechanismus pevádí jen výrazy, které jsou uvedené jako peložitelné v etzcích $...Fmt --nepeloží 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 pidá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 skutenosti, ž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 pvodní stránce:
<< Vlastní WikiStyly | Index dokumentace | Lokální nastavení >>
OT: Když mám wiki internacionalizovanou pomocí config.php
, jak vrátím nkterou konkrétní skupinu do angliitny?
OD: Použijte $XLLangs = array('en');
v konfiguraním souboru group.php
.
OT: Co pedstavuje první parameter této funkce? Jak mže být použitý?
OD:
Mechanizmus XLPage umožuje naítat více sad peklad a první parametr se používá na jejich rozlišení.
Napíklad, pedpokládajme, že chceme mít peklady pro normální francouzštinu
i pro "kanadskou" francouzštinu. Namísto udržování dvou zcela samostatných sad
stránek, bychom mohli udlat:
XLPage('fr', 'PmWikiFr.XLPage');
XLPage('fr-ca', 'PmWikiFrCa.XLPage');
PmWikiFr.XLPage by obsahovala všechny peklady ve standartní francouzštin, zatímco co PmWikiFrCA.XLPage by mohla obsahovat jen peklady "specifické pro Kanadu" -- tj., ty, které jsou odlišné od tch na francouzské stránce.
První parameter odlišuje dv sady peklad. Navíc, skript config.php mže použít promnnou $XLLangs
na úpravu poadí pekladu, takže pokud byla skupina nebo stránka kde jsem cht peklad pouze ve standartní francouzštin, mohu nastavit:
$XLLangs
= array('fr', 'en');
a Pmwiki použije pouze 'fr' a 'en' peklady (v tomto poadí),
nezáleží na tom kolik peklad bylo nateno pomocí XLPage().