Väčšine ľudí znie otázka “Ktorý je môj obľúbený Gettext PO editor?” podobne akoby ste sa ich opýtali, kedy je najlepší čas ísť k zubárovi… Bohužiaľ, už si nepamätám, kde som to čítala, ale tento výrok vynikajúco charakterizoval aj moje pocity, keď som sa prvýkrát stretla s úskaliami “korektného” poslovenčenia tém a modulov. Slovo “korektné” je teraz v úvodzovkách preto, že keď som predtým písala o tom, ako môžete naučiť témy, ktoré “nevedia po slovensky”, aby sa s návštevníkmi stránky po slovensky “rozprávali”, tak som vám odporúčala, aby ste v samotnom kóde (v php súboroch) prepísali objavujúce sa anglické správy na slovenské. Niektorí ma vtedy karhali, že to nie je správny postup – veď keď danú tému alebo modul zaktualizujete, môžete začať celú prácu od začiatku. Korektným postupom by bolo preloženie jazykových súborov, lebo tie sú nezávislé od php súborov, a preto nie je problémom ani neskoršia aktualizácia.
Problémom bolo iba to, že k týmto témam a modulom jazykové súbory neboli.
Aby som začala príbeh od začiatku (a prepáčte, ale teraz musím byť trošku “technická”), vývojári WordPress chceli, aby bol ich systém ľahko používateľný pre každého bez toho, aby oni by museli ovládať všetky jazyky sveta. To je tá v názve spomínaná globalizácia; a lokalizácia znamená preklad do vlastného jazyka. Na to si vývojári vybrali postup GNU gettext – obvyklý nástroj lokalizácie open-source, resp. bezplatných softvérov.
Postup má tri kroky.
Podstatou prvého je, že systém WordPress, resp. témy a moduly dodržiavajúce pravidlá, používajú dve funkcie php jazyka: jedna z nich __($message) nevypisuje samotný text (“správu”), ale odovzdáva ho ako premennú druhej funkcii a táto druhá funkcia _e($message) ich píše priamo na obrazovku. V obidvoch prípadoch sa systém snaží nájsť preklad $message, a keď ho nájde, napíše ten preklad, ak nie, tak samotný $message.
Pomocou druhého kroku program prezrie php súbory a vyberie si zo zdrojového kódu všetky $message, ktoré nájde medzi zátvorkami funkcií __() alebo _e(). Z nich si vytvorí jeden špeciálny súbor: tzv. POT (Portable Object Template). Ak chcete preložiť tému alebo modul, najprv musíte nájsť tento súbor. (Dávajte si pozor: ak máte vo svojom počítači Microsoft Office, súbory .pot berie váš počítač ako premietanie!)
V treťom kroku budete potrebovať v úvode spomínaný Gettext PO editor. Takýchto editorov sa na internete dá nájsť veľa, najčastejšie sa odporúča Poedit. Tento program uchováva na ľahko obsluhovateľnej ploche pôvodný anglický text aj preložený text v jednom PO (Portable Object), t. j. v súbore vo formáte .po, ktorý vytvorí podľa .pot. Je to teda editovateľný, prepisovateľný súbor, ktorý môžete hocikedy vytvárať podľa svojej vôle (teda ak existuje slovenský preklad, v ktorom sa tyká, ale vy chcete vykať, môžete ho prepísať). V každom prípade, keď uložíte súbor .po, automaticky sa vytvorí súbor MO (Machine Object) preložený do strojového jazyka – a to je ten, ktorý vlastne systém bude používať . Preklad do jazyka stroja je potrebný preto, lebo jeho používanie je pre systém oveľa rýchlejšie, ako keby musel hľadať text.
K samotnému prekladu potrebujete teda .po, na webhosting stačí nahrať súbor .mo.
Názov súboru .po a .mo môže obsahovať aj názov modulu, napríklad antivirus-sk_SK.po, ale často je názvom súboru jednoducho len sk_SK.po. Z dvoch na slovenský jazyk sa odvolávajúcich sk: prvé s malými písmenami poukazuje na jazyk, druhé s veľkými písmenami poukazuje na štát. U nás sú obidve, samozrejme, rovnaké, ale napríklad v prípade španielčiny môže byť aj es_ES, aj es_PE, prvý názov poukazuje na Španielsko, druhý na Peru.
Ďalší podrobnejší popis na túto tému si môžete prečítať v dokumentácii WordPress (kliknite sem), a tiež sa tým zaoberá aj Urban Giraffe a Weblog Tools Collection v príspevkoch (všetky sú po anglicky).
Ak k zvolenej téme alebo modulu nie je ani súbor .pot, ani súbor .po, zostáva vám iba rýpať sa v php kóde.
Pridaj komentár