Voltar ao blog
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: qual é a diferença e quando usar cada um

By Robert M

PolyLingo vs Polylang: qual a diferença e quando usar cada um

Se você chegou aqui, provavelmente está em uma de duas situações: está satisfeito com o Polylang dentro do WordPress, mas se pergunta se existe algo equivalente para um projeto que não está no WordPress, ou está migrando totalmente do WordPress e tentando entender o que acontece com sua configuração multilíngue.

Este post responde diretamente a ambas as perguntas. Vamos cobrir o que cada ferramenta realmente faz, onde cada uma se encaixa e como escolher entre elas.


O que é o Polylang (e o que não é)

Polylang é um plugin do WordPress. É um dos melhores plugins multilíngues no ecossistema WordPress. Ele gerencia os seletores de idioma, permite criar versões traduzidas de posts e páginas, lida com tags hreflang e integra-se de forma limpa com o editor de blocos do WordPress. Se você está rodando um site WordPress, é uma ferramenta séria, bem mantida e há uma boa razão para ter milhões de instalações ativas.

A limitação está bem na descrição: é um plugin do WordPress. Não possui uma API que você possa chamar de fora do WordPress. Não tem conceito de arquivo JSON de localidade, arquivo de conteúdo Markdown ou template HTML em um projeto Next.js. Todo seu modelo assume que o conteúdo vive no banco de dados do WordPress e é renderizado pelo WordPress.

Isso não é uma crítica. É apenas o escopo da ferramenta.


O que é o PolyLingo

PolyLingo é uma API de tradução. Você envia conteúdo (texto simples, Markdown, JSON ou HTML) e ela retorna versões traduzidas em todos os idiomas que você solicitar, em uma única requisição. Não tem opinião sobre seu CMS, seu framework ou sua configuração de deploy. Funciona onde quer que você possa fazer uma requisição HTTP.

O objetivo principal do design é a preservação do formato. A maioria das APIs de tradução são construídas em torno de sentenças: você envia uma string, recebe uma string de volta. Esse modelo falha rapidamente quando seu conteúdo tem estrutura. Cole um arquivo JSON de localidade em um serviço típico de tradução e você receberá nomes de chaves traduzidos, delimitadores corrompidos ou prosa onde antes havia um objeto. PolyLingo trata a estrutura como fora dos limites. Apenas os valores string mudam; todo o resto volta exatamente como foi enviado.

Um exemplo concreto. Você envia isto:

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

Um tradutor orientado a sentenças pode devolver:

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

A chave btn virou button. Isso vai quebrar sua aplicação. PolyLingo devolve:

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

Chaves intactas. Apenas os valores traduzidos.

O mesmo princípio se aplica ao Markdown (títulos continuam títulos, blocos de código são mantidos verbatim, URLs de links não mudam) e HTML (tags e atributos são preservados, apenas nós de texto e atributos apropriados são traduzidos).


A diferença real: escopo

A forma mais simples de colocar:

Polylang gerencia conteúdo multilíngue dentro do WordPress. É uma camada CMS. Ele gerencia qual post é a versão em espanhol de qual post em inglês, gera seletores de idioma e mantém as traduções sincronizadas quando você atualiza o conteúdo.

PolyLingo traduz conteúdo estruturado via API. É uma camada de tradução. Você fornece o conteúdo, ele retorna as traduções. O que você faz com essas traduções é com você.

Eles resolvem problemas adjacentes, não o mesmo problema. Por isso a comparação não é realmente "qual é melhor", mas "qual problema eu tenho".


Quando usar Polylang

  • Seu site roda no WordPress e você quer continuar no WordPress
  • Você precisa de um fluxo de trabalho de gerenciamento de conteúdo: editores alternando entre versões de idioma, rastreamento do status da tradução, seletores de idioma no tema
  • Você não é desenvolvedor e quer uma solução guiada por interface
  • Você usa WooCommerce e precisa que a tradução de produtos seja gerenciada dentro do WordPress

Polylang é excelente em tudo isso. Se WordPress é sua stack, é a ferramenta certa.


Quando usar PolyLingo

  • Você está construindo em Next.js, Nuxt, SvelteKit, Astro ou qualquer outro framework não-WordPress
  • Você usa um CMS headless (Contentful, Sanity, Prismic) e precisa traduzir conteúdo na publicação ou via webhook
  • Seu conteúdo vive em arquivos JSON de localidade que precisam ser traduzidos sem corromper a estrutura das chaves
  • Você está migrando do WordPress e quer levar seu fluxo multilíngue com você
  • Você tem conteúdo Markdown (posts de blog, documentação, descrições de produtos) e precisa de versões traduzidas que não quebrem a formatação
  • Você quer traduzir para múltiplos idiomas em uma única chamada API ao invés de uma chamada por idioma

O endpoint /translate do PolyLingo aceita um array targets, então uma requisição pode retornar todos os 36 idiomas suportados de uma vez. Para um arquivo de localidade que precisa ser entregue em dez idiomas, isso é uma chamada API ao invés de dez.


E a migração do WordPress?

Se você está movendo um site WordPress para uma configuração headless ou estática, seu conteúdo Polylang não vem automaticamente com você. As traduções são armazenadas como metadados de posts do WordPress e não exportam limpo para arquivos Markdown ou estruturas JSON.

O caminho prático que a maioria das equipes segue:

  1. Exporte seu conteúdo WordPress para Markdown ou JSON (ferramentas como wordpress-export-to-markdown cuidam da parte mecânica)
  2. Use PolyLingo para traduzir o conteúdo exportado para seus idiomas alvo
  3. Armazene os arquivos resultantes na sua nova estrutura de conteúdo junto com o idioma fonte

O endpoint batch do PolyLingo (POST /translate/batch) é feito exatamente para isso. Você pode enviar até 100 itens de conteúdo em uma única requisição, cada um com seu próprio formato, todos compartilhando o mesmo conjunto de idiomas alvo. Para uma migração de site com centenas de páginas, essa é a ferramenta certa para o trabalho.


Resumo lado a lado

PolyLingoPolylang
Funciona sem WordPressSimNão
Preservação de formato (JSON, Markdown, HTML)SimApenas conteúdo WordPress
Uma requisição, todos os idiomasSimNão
Acesso REST APISimNão
UI de gerenciamento de conteúdoUI do tradutor (sem código)Admin completo do WordPress
Detecta formato de conteúdo automaticamenteSimN/A
Suporte a idiomas RTLSimSim
Cobrança baseada no usoSimPlugin gratuito / taxa fixa Polylang Pro

A versão curta

Se você está no WordPress e vai continuar no WordPress: use Polylang. Ele foi feito para esse ambiente e é bom nisso.

Se você está fora do WordPress, saindo do WordPress ou construindo qualquer coisa que não seja WordPress: PolyLingo oferece o mesmo fluxo multilíngue estruturado via API que funciona com o que quer que você esteja usando.

As duas ferramentas também podem coexistir. Algumas equipes usam Polylang no site principal de marketing (que fica no WordPress) e usam PolyLingo para o site de documentação, strings da UI do app web ou templates de email. O fluxo é o mesmo; a stack não precisa ser.


Experimente

O plano gratuito do PolyLingo inclui 100.000 tokens por mês. Isso é suficiente para vários posts de blog em dez idiomas, ou um arquivo de localidade médio em 36 idiomas. Não é necessário cartão de crédito.

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

Comece a traduzir grátis