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