top of page

Jak zrobić wielojęzykową witrynę w WordPressie? Wtyczka Polylang

Zdjęcie autora: Piotr BartczakPiotr Bartczak

Wprawdzie z natury nie jestem jakimś specjalnym miłośnikiem stosowania gotowych pluginów, ale jest kilka, po które sięgam gdy tylko są potrzebne. Tym oto wpisem postanowiłem zacząć mini cykl wpisów o wtyczkach, których użycia nie powinien się wstydzić żaden wp-developer.

Co jakiś czas trafiam na pytanie jak zrobić wielojęzykową stronę na WordPressie i najczęściej polecany jest WPML. Od dłuższego czasu jest on płatny, ale osoby które go używają (niestety nigdy nie miałem przyjemności) mówią, że wart jest swej ceny.

A ja odpowiadam: zanim kupicie licencję na WPML, sprawdźcie czy przypadkiem PolyLang nie jest tym, czego potrzebujecie. Wtyczka ta nic nie kosztuje, stosowałem ją już w kilku projektach i jak do tej pory nie znalazłem w niej żadnych ograniczeń.

Przetłumaczyć można właściwie wszystko na taką ilość języków, na jaką się chce. Dla różnych języków można wybrać różne podstrony, różne kategorie wpisów, różne obrazki… Naprawdę nie widzę miejsca, które nie dałoby się zinternacjonalizować.


polylang

Jaka jest filozofia działania tego pluginu? Część wtyczek, aby jakiś wpis (strona etc) miała różną treść w zależności od języka dodaje na stronie edycji wpisu dodatkowe pola na tekst i tytuł w każdym języku – na jednym ekranie edytujemy jeden wpis w każdym języku. PolyLang działa inaczej. Tu tworzymy wpis, tak jak to robimy w zwykłym WordPressie i po zakończeniu jego edycji określamy jaki on ma język. Następnie tworzymy kolejny wpis od początku, oznaczamy go jako wpis w kolejnym języku i przez małe pole przy nim tworzymy powiązanie z wpisem poprzednim, tak aby PolyLang zorientował się, że jest to tłumaczenie na kolejny język wpisu pierwszego:


I tak dla kolejnych języków.

Ten sposób tłumaczenia uważam za lepszy od edycji wpisu we wszystkich językach na raz. Daje bowiem możliwość zastosowania dla różnych języków nie tylko różnych tytułów i jego treści, ale kompletnie wszystkiego, co z wpisem się wiąże. I tak na przykład polskojęzyczny wpis o tytule „Moje wakacje” może być przypisany do kategorii „Podróże”, a jego tłumaczenie na język angielski będzie związane z kategorią „Travels”. Jeśli polskojęzycznemu wpisowi dodamy custom fields 'dlugosc’ o wartości '2 tygodnie’, ten sam custom field w języku angielskim może mieć wartość '2 weeks’.

Wiązanie między językami dotyczy nie tylko wpisów. Także wszelkie taksonomie, a nawet obrazki w galerii mogą mieć określony język i być powiązane ze swoim odpowiednikiem. I tak na przykład jeśli ktoś odwiedza naszą podstronę example.com/category/podroze grupującą wszystkie wpisy z kategorii 'Podróże’ i kliknie na ikonę zmiany języka na angielski, zostanie przeniesiony na podstronę example.com/category/travels grupującą wszystkie wpisy w kategorii 'Travels’.


Wykorzystanie wtyczki z punktu widzenia twórców skórek jest banalnie proste, a dzięki rozbudowanej dokumentacji technicznej, zawartej w paczce z wtyczką nie ma żadnych ograniczeń. W podstawowej formie wystarczy skorzystać z gotowego widżeta do przełączania języków. Jeśli komuś to nie wystarczy i chce perfekcyjnie dostosować wygląd „przełącznika” do swojej skórki może skorzystać z temple tag-a, który osadzi w dowolnym miejscu skórki, czy całej masy funkcji dodatkowych. Po szczegóły zapraszam do dokumentacji.

Wiem, że powyższy opis na pewno nie odpowiada na Wasze wszystkie pytania, dlatego zachęcam do zadawania ich w komentarzach pod tym wpisem. Podejrzewam jednak, że jakiego pytania byście nie zadali („Czy PolyLang potrafi…”) odpowiedź będzie twierdząca.

Bo czy PolyLang pozwala na zdefiniowanie różnej nazwy strony w zależności od języka (bloginfo(’name’))? Tak? Różne opisy opisy strony (description)? Oczywiście. Różne menu (wygląd > menu) w zależności od języka? Jak najbardziej. Jak mówiłem póki co nie trafiłem na ograniczenia tej wtyczki i zapewniam, że i wielu z Was taki przypadek długo nie spotka. :)

Uwaga (dodane we wrześniu 2014): bardzo proszę nie wysyłać do mnie prywatnych pytań jak coś zrobić w polylang. Jak zapewne widzicie w mojej stopce do tego wpisu, obecnie pracuję nad konkurencyjną wtyczką, więc takie porady niestety działały by na szkodę mojego pracodawcy ;) Po drugie, wpis który przeczytałeś jest dość stary: przez ostatnie półtora roku wtyczki polylang nie używałem ani razu, jej kod zapewne znacznie się zmienił, więc moja odpowiedź na pytanie jak zrobić coś w polylang brzmi: nie wiem i niestety nie mogę poświęcić czasu na sprawdzenie jak to teraz jest w tej wtyczce. Jako bottom line: oczywiście obecnie zamiast polylang, polecam WPML ;) Tu akurat z kodem i wszelkimi niuansami jestem na bieżąco.

0 wyświetleń0 komentarzy

Ostatnie posty

Zobacz wszystkie

Comments


bottom of page