Повернутися до блогу
Side-by-side illustration comparing a WordPress multilingual admin interface on the left with a JSON translation API workflow on the right.

PolyLingo проти Polylang: у чому різниця і коли використовувати кожен

By Robert M

PolyLingo проти Polylang: у чому різниця і коли використовувати кожен

Якщо ви потрапили сюди, ймовірно, ви у одній із двох ситуацій: ви задоволені Polylang у WordPress, але цікавитесь, чи є щось подібне для проєкту, який не на WordPress, або ви повністю переходите з WordPress і намагаєтесь зрозуміти, що станеться з вашою багатомовною налаштуванням.

Цей допис відповідає на обидва питання безпосередньо. Ми розглянемо, що насправді робить кожен інструмент, де кожен підходить і як обрати між ними.


Що таке Polylang (і чим він не є)

Polylang — це плагін для WordPress. Це один із найкращих багатомовних плагінів у екосистемі WordPress. Він керує перемикачами мов, дозволяє створювати перекладені версії публікацій і сторінок, обробляє теги hreflang і чисто інтегрується з блоковим редактором WordPress. Якщо у вас сайт на WordPress, це серйозний, добре підтримуваний інструмент, і є вагома причина, чому він має мільйони активних встановлень.

Обмеження полягає в тому, що це плагін для WordPress. Він не має API, який можна викликати ззовні WordPress. Він не має поняття JSON-файлу локалі, Markdown-файлу контенту або HTML-шаблону в проєкті Next.js. Вся його модель припускає, що контент живе в базі даних WordPress і рендериться WordPress.

Це не критика. Це просто сфера застосування інструменту.


Що таке PolyLingo

PolyLingo — це API перекладу. Ви надсилаєте йому контент (звичайний текст, Markdown, JSON або HTML), і він повертає перекладені версії на всі мови, які ви запитуєте, в одному запиті. Він не має думки про вашу CMS, ваш фреймворк чи налаштування розгортання. Працює там, де ви можете зробити HTTP-запит.

Основна мета дизайну — збереження формату. Більшість API перекладу побудовані навколо речень: ви надсилаєте рядок, отримуєте рядок назад. Ця модель швидко ламається, коли ваш контент має структуру. Вставте JSON-файл локалі у типовий сервіс перекладу, і ви отримаєте перекладені імена ключів, пошкоджені роздільники або прозу там, де був об’єкт. PolyLingo вважає структуру недоторканою. Змінюються лише рядкові значення; все інше повертається точно так, як було надіслано.

Конкретний приклад. Ви надсилаєте це:

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

Перекладач, орієнтований на речення, може повернути вам:

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

Ключ btn став button. Це зламає ваш додаток. PolyLingo дає вам:

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

Ключі не змінені. Лише значення перекладені.

Той самий принцип застосовується до Markdown (заголовки залишаються заголовками, блоки коду залишаються без змін, URL посилань не змінюються) і HTML (теги та атрибути зберігаються, перекладаються лише текстові вузли та відповідні атрибути).


Справжня різниця: сфера застосування

Найпростіше сказати так:

Polylang керує багатомовним контентом всередині WordPress. Це шар CMS. Він керує тим, яка публікація є іспанською версією якої англійської публікації, генерує перемикачі мов і підтримує синхронізацію перекладів при оновленні контенту.

PolyLingo перекладає структурований контент через API. Це шар перекладу. Ви подаєте контент, він повертає переклади. Що робити з цими перекладами — залежить від вас.

Вони вирішують суміжні проблеми, а не одну й ту саму. Ось чому порівняння — це не "що краще", а "яка у мене проблема".


Коли використовувати Polylang

  • Ваш сайт працює на WordPress і ви хочете залишатися на WordPress
  • Вам потрібен робочий процес управління контентом: редактори перемикаються між мовними версіями, відстеження статусу перекладу, перемикачі мов у темі
  • Ви не розробник і хочете рішення з інтерфейсом користувача
  • Ви використовуєте WooCommerce і вам потрібен переклад продуктів, керований у WordPress

Polylang чудово справляється з усім цим. Якщо WordPress — ваш стек, це правильний інструмент.


Коли використовувати PolyLingo

  • Ви розробляєте на Next.js, Nuxt, SvelteKit, Astro або будь-якому іншому фреймворку, що не є WordPress
  • Ви використовуєте headless CMS (Contentful, Sanity, Prismic) і потрібно перекладати контент під час публікації або через webhook
  • Ваш контент зберігається у JSON-файлах локалі, які потрібно перекладати без пошкодження структури ключів
  • Ви мігруєте з WordPress і хочете перенести свій багатомовний робочий процес
  • У вас є Markdown-контент (блоги, документація, описи продуктів) і потрібні перекладені версії, які не порушують форматування
  • Ви хочете перекладати на кілька мов за один виклик API, а не робити по одному виклику на мову

Ендпоінт /translate PolyLingo приймає масив targets, тому один запит може повернути всі 36 підтримуваних мов одночасно. Для файлу локалі, який потрібно відправити десятьма мовами, це один API-запит замість десяти.


А як щодо міграції з WordPress?

Якщо ви переносите сайт WordPress на headless або статичну конфігурацію, ваш контент Polylang не переноситься автоматично. Переклади зберігаються як метадані постів WordPress і не експортуються чисто у Markdown-файли або JSON-структури.

Практичний шлях, який більшість команд обирає:

  1. Експортуйте ваш контент WordPress у Markdown або JSON (інструменти на кшталт wordpress-export-to-markdown допомагають з механікою)
  2. Використовуйте PolyLingo для перекладу експортованого контенту на цільові мови
  3. Зберігайте отримані файли у вашій новій структурі контенту поруч із мовою джерела

Пакетний ендпоінт PolyLingo (POST /translate/batch) створений саме для цього. Ви можете надіслати до 100 елементів контенту в одному запиті, кожен зі своїм форматом, всі з однаковим набором цільових мов. Для міграції сайту з сотнями сторінок це правильний інструмент.


Порівняльна таблиця

PolyLingoPolylang
Працює без WordPressТакНі
Збереження формату (JSON, Markdown, HTML)ТакТільки контент WordPress
Один запит, всі мовиТакНі
Доступ до REST APIТакНі
UI управління контентомUI перекладача (без коду)Повна адмінка WordPress
Автоматичне визначення формату контентуТакН/Д
Підтримка RTL мовТакТак
Оплата за використанняТакБезкоштовний плагін / фіксована плата Polylang Pro

Коротка версія

Якщо ви на WordPress і залишаєтесь на WordPress: використовуйте Polylang. Він створений для цього середовища і добре з цим справляється.

Якщо ви поза WordPress, виходите з WordPress або створюєте щось, що не є WordPress: PolyLingo дає вам той самий структурований багатомовний робочий процес через API, який працює з тим, що ви будуєте.

Обидва інструменти можуть співіснувати. Деякі команди запускають Polylang на своєму основному маркетинговому сайті (який залишається на WordPress) і використовують PolyLingo для сайту документації, рядків UI веб-додатку або шаблонів електронної пошти. Робочий процес однаковий; стек не обов’язково.


Спробуйте

Безкоштовний рівень PolyLingo включає 100 000 токенів на місяць. Цього достатньо для кількох блог-постів на десяти мовах або середнього файлу локалі на 36 мовах. Кредитна картка не потрібна.

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"]
  }'

Почати безкоштовний переклад