Powrót do bloga
Side-by-side illustration comparing a WordPress multilingual admin interface on the left with a JSON translation API workflow on the right.

PolyLingo vs Polylang: jaka jest różnica i kiedy używać którego

By Robert M

PolyLingo vs Polylang: jaka jest różnica i kiedy używać każdego z nich

Jeśli tu trafiłeś, prawdopodobnie jesteś w jednej z dwóch sytuacji: jesteś zadowolony z Polylang w WordPress, ale zastanawiasz się, czy istnieje coś podobnego dla projektu, który nie działa na WordPress, lub migrujesz całkowicie z WordPress i próbujesz zrozumieć, co się dzieje z twoją wielojęzyczną konfiguracją.

Ten wpis odpowiada na oba pytania bezpośrednio. Omówimy, co każde narzędzie faktycznie robi, gdzie każde pasuje i jak wybrać między nimi.


Czym jest Polylang (a czym nie jest)

Polylang to wtyczka do WordPress. To jedna z najlepszych wtyczek wielojęzycznych w ekosystemie WordPress. Zarządza przełącznikami języków, pozwala tworzyć przetłumaczone wersje postów i stron, obsługuje tagi hreflang i integruje się czysto z edytorem bloków WordPress. Jeśli prowadzisz stronę na WordPress, to poważne, dobrze utrzymane narzędzie i jest dobry powód, dla którego ma miliony aktywnych instalacji.

Ograniczenie jest właśnie w opisie: to wtyczka WordPress. Nie ma API, które można wywołać spoza WordPress. Nie ma pojęcia o pliku locale JSON, pliku zawartości Markdown czy szablonie HTML w projekcie Next.js. Cały model zakłada, że zawartość znajduje się w bazie danych WordPress i jest renderowana przez WordPress.

To nie jest krytyka. To po prostu zakres narzędzia.


Czym jest PolyLingo

PolyLingo to API tłumaczeniowe. Wysyłasz do niego zawartość (zwykły tekst, Markdown, JSON lub HTML), a ono zwraca przetłumaczone wersje na każdy język, o który poprosisz, w jednym żądaniu. Nie ma zdania na temat twojego CMS, frameworka czy konfiguracji wdrożenia. Działa wszędzie tam, gdzie możesz wykonać żądanie HTTP.

Głównym celem projektowym jest zachowanie formatu. Większość API tłumaczeniowych jest zbudowana wokół zdań: wysyłasz ciąg znaków, otrzymujesz ciąg znaków z powrotem. Ten model szybko się psuje, gdy twoja zawartość ma strukturę. Wklej plik locale JSON do typowej usługi tłumaczeniowej, a otrzymasz przetłumaczone nazwy kluczy, uszkodzone delimitery lub prozę tam, gdzie był obiekt. PolyLingo traktuje strukturę jako niedostępną. Zmieniają się tylko wartości tekstowe; wszystko inne wraca dokładnie tak, jak zostało wysłane.

Konkretne przykłady. Wysyłasz to:

{"btn": {"save": "Save", "cancel": "Cancel"}}

Tłumacz zorientowany na zdania mógłby zwrócić:

{"button": {"save": "Guardar", "cancel": "Cancelar"}}

Klucz btn stał się button. To zepsuje twoją aplikację. PolyLingo zwraca:

{"btn": {"save": "Guardar", "cancel": "Cancelar"}}

Klucze nietknięte. Tylko wartości przetłumaczone.

Ta sama zasada dotyczy Markdown (nagłówki pozostają nagłówkami, bloki kodu pozostają niezmienione, adresy URL linków się nie zmieniają) i HTML (tagi i atrybuty są zachowane, tłumaczone są tylko węzły tekstowe i odpowiednie atrybuty).


Rzeczywista różnica: zakres

Najprościej mówiąc:

Polylang zarządza wielojęzyczną zawartością wewnątrz WordPress. To warstwa CMS. Obsługuje, który post jest wersją hiszpańską którego posta angielskiego, generuje przełączniki języków i utrzymuje synchronizację tłumaczeń podczas aktualizacji zawartości.

PolyLingo tłumaczy ustrukturyzowaną zawartość przez API. To warstwa tłumaczeniowa. Dostarczasz mu zawartość, zwraca tłumaczenia. Co z tymi tłumaczeniami zrobisz, zależy od ciebie.

Rozwiązują sąsiednie problemy, nie ten sam problem. Dlatego porównanie nie brzmi „które jest lepsze”, ale „jaki problem mam”.


Kiedy używać Polylang

  • Twoja strona działa na WordPress i chcesz pozostać na WordPress
  • Potrzebujesz workflow zarządzania treścią: redaktorzy przełączający się między wersjami językowymi, śledzenie statusu tłumaczenia, przełączniki języków w motywie
  • Nie jesteś deweloperem i chcesz rozwiązania opartego na UI
  • Używasz WooCommerce i potrzebujesz zarządzania tłumaczeniem produktów w WordPress

Polylang jest w tym doskonały. Jeśli WordPress to twój stack, to właściwe narzędzie.


Kiedy używać PolyLingo

  • Budujesz na Next.js, Nuxt, SvelteKit, Astro lub innym frameworku nie-WordPress
  • Używasz headless CMS (Contentful, Sanity, Prismic) i potrzebujesz tłumaczyć zawartość podczas publikacji lub przez webhook
  • Twoja zawartość jest w plikach locale JSON, które muszą być tłumaczone bez uszkadzania struktury kluczy
  • Migrujesz z WordPress i chcesz przenieść swój wielojęzyczny workflow
  • Masz zawartość Markdown (posty na blogu, dokumentację, opisy produktów) i potrzebujesz przetłumaczonych wersji, które nie psują formatowania
  • Chcesz tłumaczyć na wiele języków w jednym wywołaniu API zamiast robić jedno wywołanie na język

Endpoint /translate PolyLingo akceptuje tablicę targets, więc jedno żądanie może zwrócić wszystkie 36 obsługiwanych języków naraz. Dla pliku locale, który musi być dostarczony w dziesięciu językach, to jedno wywołanie API zamiast dziesięciu.


A co z migracją z WordPress?

Jeśli przenosisz stronę WordPress do setupu headless lub statycznego, twoja zawartość Polylang nie jest automatycznie przenoszona. Tłumaczenia są przechowywane jako metadane postów WordPress i nie eksportują się czysto do plików Markdown czy struktur JSON.

Praktyczna ścieżka, którą wybiera większość zespołów:

  1. Eksportuj zawartość WordPress do Markdown lub JSON (narzędzia takie jak wordpress-export-to-markdown obsługują część mechaniczną)
  2. Użyj PolyLingo do przetłumaczenia wyeksportowanej zawartości na języki docelowe
  3. Przechowuj powstałe pliki w nowej strukturze zawartości obok języka źródłowego

Batch endpoint PolyLingo (POST /translate/batch) jest stworzony właśnie do tego. Możesz wysłać do 100 elementów zawartości w jednym żądaniu, każdy z własnym formatem, wszystkie dzielące ten sam zestaw języków docelowych. Dla migracji strony z setkami stron to właściwe narzędzie do pracy.


Podsumowanie obok siebie

PolyLingoPolylang
Działa bez WordPressTakNie
Zachowanie formatu (JSON, Markdown, HTML)TakTylko zawartość WordPress
Jedno żądanie, wszystkie językiTakNie
Dostęp do REST APITakNie
UI zarządzania zawartościąUI tłumacza (bez kodu)Pełny panel admina WordPress
Automatyczne wykrywanie formatu zawartościTakN/A
Obsługa języków RTLTakTak
Rozliczanie na podstawie użyciaTakDarmowa wtyczka / stała opłata Polylang Pro

Krótsza wersja

Jeśli jesteś na WordPress i zostajesz na WordPress: używaj Polylang. Jest zbudowany dla tego środowiska i jest w tym dobry.

Jeśli jesteś poza WordPress, odchodzisz od WordPress lub budujesz coś, co nie jest WordPress: PolyLingo daje ci ten sam ustrukturyzowany wielojęzyczny workflow przez API, które działa z czymkolwiek budujesz.

Oba narzędzia mogą też współistnieć. Niektóre zespoły używają Polylang na swojej głównej stronie marketingowej (która pozostaje na WordPress) i używają PolyLingo dla swojej strony dokumentacji, ciągów UI aplikacji webowej lub szablonów maili. Workflow jest ten sam; stack nie musi być.


Wypróbuj

Darmowy poziom PolyLingo obejmuje 100 000 tokenów miesięcznie. To wystarczająco na kilka postów blogowych w dziesięciu językach lub średniej wielkości plik locale w 36 językach. Nie jest wymagana karta kredytowa.

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "# Welcome\n\nTranslate **any format** without breaking the structure.",
    "format": "markdown",
    "targets": ["es", "fr", "de", "ja"]
  }'

Zacznij tłumaczyć za darmo