Wielojęzyczna strona w WordPressie to temat, który podnosi ciśnienie niejednemu webmasterowi. Doświadczyłem tego na własnej skórze – kiedy klient pyta „Czy da się to przełożyć na angielski i niemiecki?”, a ty jesteś w trakcie budowania strony na Divi’u, to czujesz, że zaraz będzie ciekawie. Niby wszystko brzmi logicznie: bierzesz moduł wielojęzykowości, czyli WPML lub Polylang. Ale który wybrać? WPML bardziej jest zintegrowany z Divi, ale za to Polylang mniej obciąża bazę danych (tworzy mniej rekordów, przu dużych sklepach ma to znaczenie). Więc ostatecznie stawiasz kartę na Polylang – czyli jedną z najpopularniejszych wtyczek do tłumaczenia w WordPressie – instalujesz ją obok Divi i… co? Działa? Prawie. Działa warunkowo. Działa „jeśli wiesz, gdzie kliknąć”.W tym wpisie podsumowuję to, czego nauczyłem się przy kilku projektach opartych na tej kombinacji. Jeśli ty również stoisz przed decyzją, czy połączenie Polylanga z Divi ma sens – ten artykuł jest dla Ciebie. Nie będę owijać w bawełnę: jest kilka rzeczy, które po prostu trzeba wiedzieć z góry.

Polylang i Divi – dwie wtyczki, które warto poznać zanim zaczniemy

Zacznijmy od początku, bo często spotykam osoby, które wiedzą, że „chcę wielojęzyczną stronę”, ale nie do końca rozumieją, czym różni się język strony od motywu, ani po co w ogóle instalować jakąś wtyczkę do języków. Więc – szybkie wprowadzenie.

WordPress domyślnie nie obsługuje wielu języków w sensie „masz stronę po polsku i po angielsku, użytkownik klika flagę i wszystko się zmienia”. Możesz wprawdzie zainstalować WordPressa w dowolnym języku, ale to dotyczy panelu administracyjnego i interfejsu – nie treści, którą widzisz na stronie. I właśnie tutaj wchodzi Polylang.

Polylang to wtyczka, która dodaje do WordPressa możliwość tworzenia treści w wielu językach. Każdy wpis, każda strona, każe menu – może mieć swoją tłumaczoną wersję. Wtyczka pozwala również na dodanie przełącznika języków (tzw. language switcher), dzięki czemu użytkownik może łatwo zmieniać wersję językową strony. W darmowej wersji Polylang oferuje naprawdę sporo, chociaż niektóre bardziej zaawansowane funkcje (jak tłumaczenie opcji motywu czy integracja z WooCommerce) wymagają zakupu Polylang Pro.

Divi to z kolei jeden z najpopularniejszych motywów (i jednocześnie page buildera) dostępnych dla WordPressa. Tworzy go firma Elegant Themes i przez lata zdobył ogromną popularność głównie dlatego, że pozwala budować efektowne strony bez znajomości kodu. Przeciągasz elementy, ustawiasz kolory, czcionki, marginesy – wszystko w wizualnym edytorze. Brzmi pięknie? Brzmi. I w większości przypadków – działa pięknie.

Problem w tym, że Divi to nie jest „lekka” wtyczka. To rozbudowany ekosystem z własnym edytorem, własnymi modułami, własną logiką budowania stron. I właśnie ta rozbudowana natura Divi sprawia, że połączenie go z taką wtyczką jak Polylang może czasem dawać zaskakujące efekty – nie zawsze przyjemne.

Oba narzędzia są jednak powszechnie używane i oba mają dużą społeczność. Więc zanim powiesz, że to złe połączenie – poczekaj. Da się, tylko trzeba wiedzieć, jak się do tego zabrać.

Jak Polylang i Divi współpracują w praktyce – co działa, a co potrafi zaskoczyć

Dobra, przejdźmy do konkretów. Kiedy po raz pierwszy połączyłem Polylang z Divi, byłem dość naiwny – myślałem, że to będzie „zainstaluj i działa”. Było „zainstaluj i sprawdzaj każdą funkcję z osobna”. Nie jest źle, naprawdę, ale warto wiedzieć czego się spodziewać.

Co działa dobrze:

  • Tworzenie tłumaczeń stron: tworzenie oddzielnych wersji językowych stron i wpisów – Polylang tworzy dla każdej strony osobną „kopię”, którą możesz tłumaczyć niezależnie. To samo dotyczy stron tworzonych przez Divi Buildera – każda tłumaczona wersja ma swój własny układ, który możesz edytować w Divi niezależnie;
  • Language switcher w menu i widżetach: przełącznik języków można dodać jako widżet lub w menu, co działa bez większych problemów. Divi ma własny system menu i widżetów, ale Polylang bez problemu się w to wpina;
  • Tłumaczenia menu: Polylang rozróżnia menu per język, a Divi korzysta ze standardowych menu WordPressa – wiec możesz mieć inne menu dla polskiej i angielskiej wersji strony;
  • Widżety: standardowe widgety Divi (sidebar, footer) działają razem z Polylanowym menedżerem języków bez większych zgrzytuł;
  • Permalink i struktura URL: możesz ustawić różne języki jako domyślne dla różnych podstron – to przydaje się przy bardziej rozbudowanych strukturach wielojęzycznych projektów.

Gdzie pojawiają się schody:

  • Ustawienia globalne Divi a wielojęzyczność: Divi ma własne ustawienia globalne (Global Colors, Global Fonts, Divi Theme Customizer), które domyślnie są wspólne dla wszystkich wersji językowych i nie są bezpośrednio „tłumaczalne” w Polylangu. Nie oznacza to jednak, że nie da się zróżnicować wyglądu strony w zależności od języka. Polylang zapisuje aktualny język użytkownika w ciasteczku pll_language (np. frenpl), a Divi posiada wbudowany mechanizm Display Conditions (warunki wyświetlania), który pozwala uzależnić widoczność dowolnej sekcji, wiersza czy modułu od wartości ciasteczka. W praktyce wystarczy w zakładce Advanced → Conditions danego elementu dodać warunek „Cookie → pll_language equals pl” i stworzyć duplikat tego elementu z warunkiem na inny język – dzięki temu można wyświetlać zupełnie inne CTA, bannery, kolory czy formularze kontaktowe dla każdej wersji językowej, bez konieczności tworzenia osobnych szablonów w Theme Builderze. Jedyne, na co trzeba uważać, to cache – należy upewnić się, że wtyczka lub serwer cache’ujący uwzględnia ciasteczko pll_language i nie serwuje jednej statycznej wersji strony wszystkim użytkownikom.
  • Divi Library i brak automatycznego tłumaczenia: Divi Library to miejsce, gdzie zapisujesz gotowe sekcje, kolumny i moduły do ponownego użycia. Niestety – elementy z biblioteki nie są automatycznie tłumaczone. Jeśli użyjesz gotowego layoutu z biblioteki Divi na tłumaczonej stronie, treść tekstu będzie ta sama co w oryginale – musisz edytować ją ręcznie;
  • Synchronizacja treści: Divi Builder edytuje treść w specjalny sposób – cały układ strony jest zapisywany w formacie JSON w bazie danych. Kiedy Polylang tworzy tłumaczenie strony, kopiuje ten JSON do nowej strony. To brzmi dobrze, ale w praktyce może prowadzić do sytuacji, gdzie zmiany w oryginalnej stronie nie są „synchronizowane” z tłumaczeniami – musisz pamiętać o aktualizacji każdej wersji językowej z osobna;
  • Konflikty JavaScript: to rzadki przypadek, ale przy niektórych konfiguracjach (szczególnie z Polylang Pro i Divi Theme Options) zdarzało mi się widzieć błędy JavaScript w konsoli albo niepoprawnie działające przełączniki. Zazwyczaj pomagało wyłączenie i ponowne włączenie cache Divi lub wyczyszczenie cache wtyczek do cache’owania.

⚠️  Wskazówka: Polylang i Divi działają razem poprawnie w większości scenariuszy, ale nie oczekuj automatyzacji. Tłumaczenia treści musisz wprowadzać ręcznie dla każdej wersji językowej. Jeśli liczysz na to, że wtyczka sama przełoży tekst, do tego służą inne rozwiązania (np. DeepL przez Polylang Pro lub zewnętrzne wtyczki do automatycznego tłumaczenia).

Krok po kroku: jak skonfigurować Polylang z Divi

OK. Oto jak powinieneś się zabrać za połączenie obu tych narzędzi, jeśli chcesz uniknąć przynajmniej części problemów, na które ja wpadłem.

  1. Kolejność ma znaczenie. Zainstaluj Polylang, zanim zaczniesz budować stronę w Divi. To ważna kolejność. Jeśli najpierw zbudujesz całą stronę po polsku, a potem dodasz Polylang – nic się nie psuje, ale będziesz mieć dużo więcej ręcznej roboty przy tworzeniu tłumaczeń. Lepiej ustawić języki na samym początku projektu.
  2. Skonfiguruj języki. Po instalacji Polylangu przejdź do Ustawienia > Polylang i dodaj języki, które chcesz obsługiwać. Każdy język ma swój kod (np. pl, en, de) i flagę. Możesz również ustawić, czy adresy URL mają zawierać prefiks języka (np. /en/ przed adresem) – to rekomenduję, bo jest czytelne dla użytkowników i przyjazne dla SEO.
  3. Ustaw opcje synchronizacji. W Polylang znajdziesz opcję synchronizacji – możesz ustawić, jakie elementy mają być współdzielone między tłumaczeniami (np. obrazy przeładowane, date, tagi). Dla stron budowanych w Divi polecam wyczyścić opcję synchronizacji zawartości strony (page content) – inaczej zmiany w polskiej wersji mogą nadpisać Twoje tłumaczenia w angielskiej. Brzmi logicznie, prawda?

  1. Tworzenie tłumaczeń stron. Teraz wejdź do Strony > Wszystkie strony i przy każdej stronie zobaczysz nowe kolumny z flagami języków. Kliknij ikonkę „+” obok języka, dla którego chcesz stworzyć tłumaczenie. WordPress stworzy nową stronę i skopiuje do niej treść z oryginatu – w tym układ Divi Buildera.
  2. Edytuj tłumaczenie w Divi Builderze. Otwórz nową stronę (tłumaczenie) w edytorze Divi i przetestuj, czy układ się skopiował poprawnie. Następnie ręcznie zmień teksty na tłumaczone treści. Tak, każdy moduł z osobna. Wiem, że to brzmi żmudnie – ale w Divi nie ma innej opcji bez dodatkowych narzędzi.
  3. Dodaj przełącznik języków. Sam Polylang umożliwia dodanie przełącznika języków jedynie jako element menu nawigacyjnego WordPress (Wygląd → Menu). W kontekście Divi to spore ograniczenie — jeśli budujesz nagłówek, stopkę lub układ strony w Divi Theme Builderze, standardowy przełącznik z menu nie daje Ci pełnej kontroli nad wyglądem i pozycjonowaniem. Dlatego warto zainstalować darmową wtyczkę Language Switcher – Polylang for Divi (autor: Coolplugins). Dodaje ona dedykowany moduł Divi, który możesz przeciągnąć i upuścić w dowolnym miejscu layoutu — na stronie, w poście, nagłówku, stopce czy sidebarze.

  1. Testuj na froncie. Po całej konfiguracji przełącz się na frontend (widok strony dla użytkownika) i przetestuj, czy przełącznik języków działa, czy tłumaczenia wyświetlają się poprawnie i czy linki między wersjami językowymi są poprawne. Jeśli korzystasz z wtyczki do cache’owania (np. WP Rocket, LiteSpeed Cache) – wyczyść cache po zmianach.

Polylang i Divi to kombinacja, która działa – ale wymaga świadomości i trochę ręcznej roboty. Nie ma tutaj magicznego przycisku „przełóż wszystko automatycznie”, a jeśli ktoś Ci mówi, że jest – to kłamie albo ma na myśli jakieś dodatkowe, płatne narzędzie do automatycznego tłumaczenia.

Podsumowanie

Moja rekomendacja dla początkujących: jeśli projekt jest stosunkowo mały (kilka-kilkanaście podstron) i masz czas na ręczne tłumaczenie – darmowy Polylang + Divi to solidne i sprawdzone połączenie. Jeśli strona jest duża lub chcesz m.in. tłumaczyć produkty WooCommerce, opcje motywu czy globalnych elementów – warto rozważyć Polylang Pro, który oferuje znacznie więcej.

Sam używam tej kombinacji w kilku projektach klientów i choć pierwsza konfiguracja wymaga cierpliwości, to późniejsze utrzymanie strony jest całkiem komfortowe. Główna zasada: planuj wielojęzyczność od samego początku, a nie „może później to dopiszemy”. W świecie WordPress „później” bardzo często zamienia się w „od nowa”.

Jeżeli macie jeszcze inne pytania odnośnie tworzenia stron internetowych, administracji stron internetowych lub pozycjonowaniem stron to również śmiało pytajcie.

Mateusz Adamski

Mateusz Adamski

Frontend Developer, Specjalista SEO. Od 2009 roku zajmuję się pozycjonowaniem oraz optymalizacją stron internetowych. Od 2012 roku specjalizuję się w tworzeniu stron i sklepów internetowych opartych na systemach CMS WordPress oraz Prestashop. Posiadam dobrą znajomość HTML5, CSS3, Bootstrap. Dysponuję również dużym doświadczeniem z programami Adobe Photoshop, Dreamweaver oraz CorelDRAW. Prywatnie jestem dużym fanem fotografii oraz motoryzacji. Od 2013 roku udzielam się jako klubowicz oraz moderator ogólnopolskiego klubu motoryzacyjnego. Masz jakieś pytania? Napisz do nas.