Ako nastaviť wordpress aby zobrazoval obsah vo viacerých jazykoch pomocou pluginu Polylang.
Zadanie: Klient ma oslovil s požiadovkou vytvoriť jednoduchý multijazyčný web, slúžiaci na prezentáciu jeho spoločnosti na zahraničnom trhu. S wordpressom už niekoľko rokov pracujem, no viacjazyčnosť som ešte nikdy neriešil. Ako prvé som preto začal googliť a analyzovať najlepšie možné riešenie.
Narazil som sa niekoľko pluginov:
- Multilingual Press
- WPML (Dobrý článok od Vladimír Juroško)
- Polylang (WPBeginer)
Po preštudovaní pár turoriálov a videí, som sa nakoniec rozhodol pre Polylang. Je zadarmo a na účel preloženia webu je najjednoduchší na používanie.
Krok 1. Nastavenie jazykov
Po nainštalovaní Polylang z wordpress repozitára je potrebné nastaviť jazyky, ktoré chceme mať na našej stránke.
- Menu: Languages -> Languages
Pridáme jazyky, v mojom prípade Angličtina a Bulharština. Hviezdičkou označíme hlavný jazyk stránky.
V tomto kroku ma potešila možnosť výberu vlajočiek. Pre jazyk en-US možete tak miesto americkej zástavky zobrazovať tú britskú.
Krok 2. Nastavenie URL štruktúry
- Menu: Languages -> Settings -> URL Modifications
Tu je potrebné sa rozhodnúť ako bude vyzerať adresová štruktúra. Zvolil som tieto možnosti:
Výsledok je, že domáca stránka bude vyzerať takto : www.mojadomena.bg/en/ prípadne www.mojadomena.bg/bg/ a jednotlive linky ako www.mojadomena.bg/en/about-us/
a podobne.
Krok 3. Preklad stránok
- Menu: Stránky
V administrácii stránky si môžete všimnúť na pravej strane nový metabox – Languages. Tu vyberiete hlavný jazyk stránky (resp. je vybraný váš predvolený jazyk), zadáte jazykový preklad a stlačíte na +. WordPress automaticky vytvorí novú stránku, kde vy zadáte názov stránky a môžete sa pustiť do jej prekladu.
Krok 4. Preklad témy
- Menu: Languages -> Strings translations
- Súbor: wp-content/themes/{vaša téma}/wpml-config.xml
Polylang automaticky zahŕňa v sekcii Strings translations všetky reťazce definované v súbore wpml-config.xml
. Na toto je dôležité myslieť ak chcete Polylang implementovať pre child-themu (treba tento súbor prekopírovať do adresára).
Sekcia String translations je naozaj intuitívna a myslím, že viacerí z vás by sa potešili, kebyže na podobnom princípe pracujú aj .po jazykové súbory.
Pozor: Nenájdete tu všetky texty, ktoré ponúka Customizer. Defaultné hodnotý Customizera, ktoré neprepíšete sa tu neobjavia. Samozrejme toto závisi od konkrétnej témy. Mne takú minútku trvalo kym som na to prišiel:-)
Krok 5. Preklad ostatného obsahu
- Súbor: wp-content/themes/{vaša téma}/functions.php
Je trochu škoda, že Polylang nedokáže vyfilrovať všetky texty a naservírovať ich cez Strings translations. Avšak aj tento problém má svoje riešenie. Ak na svojej stránke máte stále texty, ktoré nie su ani v Strings translations ani v .po jazykových súboroch a neviete ich preto preložiť, použite Polylang funkciu: pll_register_string().
function register_strings() {
pll_register_string('onepress', 'About us');
}
add_action('init','register_strings');
pll__('About us')
a to je všetko.Krok 6. Menu
- Menu: Vzhľad -> Menu
Polylang automaticky pridá nové menu umiestnenie pre každú jazykovú mutáciu. Vaša úloha je teda vytvoriť nové menu a priradiť mu odpovedajúce umiestnenie.
Krok 7. Vlajočky
- Menu: Vzhľad -> Menu; Menu: Vzhľad -> Widgety
Čerešnička na torte je pridanie vlajočiek jednotlivých jazykových mutácii. Polylang Vám umožnuje pridať vlajky buď priamo do menu alebo v podobe widgetu napr. do sidebaru. Pre používateľa, ktorý nerozumie cudziemu jazyku je pochopiteľne najlepšia voľba pridať túto možnosť priamo do menu.