---
title: "Como traduzir uma exportação do WPML (arquivos XLIFF em um ZIP)"
description: "O WPML exporta seus posts do WordPress como arquivos XLIFF dentro de um ZIP. Veja o que realmente há nesse arquivo e como traduzir tudo em um único trabalho."
date: 2026-09-02
language: pt
canonical: https://ai-glot.com/pt/blog/translate-wpml-export-xliff-zip
source: AI Glot blog
---
**Se você acabou de exportar trabalhos de tradução do WPML e está com um arquivo ZIP sem saber o que fazer, este guia é para você.** Você não precisa descompactá-lo, nem abrir um único arquivo XLIFF.

## O que você tem em mãos

A exportação do WPML é um arquivo ZIP com uma pasta interna chamada `posts/` e um arquivo `.xliff` por post. Nada mais.

Os números abaixo vêm de uma exportação real de 44 posts, medidos e não estimados, para que você possa compará-los com os seus.

*Illustration: Uma exportação do WPML é um arquivo ZIP contendo um arquivo XLIFF por post. Este continha 44 posts, 228 unidades traduzíveis e quatro idiomas de destino.*

Duas coisas sobre esse arquivo costumam surpreender a maioria das pessoas.

**Cada arquivo declara seu próprio par de idiomas.** O elemento `<file>` no topo de cada XLIFF indica a origem e o destino da tradução:

```xml
<file original="103-3aeb85935a8505760aa368dc691898a7"
      source-language="fr"
      target-language="en"
      datatype="plaintext">
```

Portanto, uma única exportação pode conter quatro idiomas de destino ao mesmo tempo, como no exemplo: francês para inglês, alemão, espanhol e italiano. O arquivo não é um único trabalho de tradução. São quatro, intercalados.

**O WPML informa o tamanho do trabalho.** Cada arquivo traz sua própria contagem de palavras em um atributo personalizado:

```xml
tool:wpml-words-to-translate-count="843"
```

Some tudo e você saberá exatamente com o que está lidando antes de se comprometer com qualquer coisa. No exemplo: 34.829 palavras.

## O que há dentro de um arquivo

Um arquivo XLIFF é um XML. Cada trecho de texto traduzível é um `<trans-unit>` com um `<source>` e um `<target>`, e o conteúdo é envolvido em `CDATA` para que o HTML dentro de um post não quebre o XML ao redor.

Aqui está uma unidade completa. Esta já havia passado pela memória de tradução, o que os atributos `state` indicam:

```xml
<trans-unit resname="title" restype="string" datatype="html" id="title">
  <source><![CDATA[Bien ventiler son logement en hiver]]></source>
  <target state="needs-review-translation" state-qualifier="tm-suggestion">
    <![CDATA[Ventilating your home in winter]]>
  </target>
  <tool:extradata unit="Title" type="text" group="Main Content" group_id="Main_Content-0"/>
</trans-unit>
```

As unidades nesse estado foram a exceção na exportação: 18 de 228. **As outras 210 não possuem nenhum atributo `state`**, e o conteúdo de destino contém o texto de origem palavra por palavra.

**E aqui está o detalhe que define como você deve abordar todo o trabalho.**

*Illustration: O WPML copia o conteúdo original para o de destino como ponto de partida, então um arquivo cheio de destinos pode ainda não ter nada traduzido.*

O WPML escreve o texto de origem no campo de destino como ponto de partida. Assim, um arquivo XLIFF onde cada `<target>` está preenchido não é necessariamente um arquivo traduzido. Na exportação real, 217 das 228 unidades ainda continham o texto de origem palavra por palavra. Apenas 18 tinham uma sugestão real de memória de tradução, marcadas como `state="needs-review-translation"`.

Se você der uma olhada rápida no arquivo, concluirá que ele já está pronto. Não está.

### As unidades que você encontrará

O WPML não exporta apenas o corpo do post. No exemplo de exportação, as 228 unidades foram divididas assim:

| ID da unidade | O que é | Contagem |
|---|---|---|
| `title` | título do post | 40 |
| `body` | conteúdo do post, como HTML | 36 |
| `URL` | o slug | 32 |
| `t_N` | categorias e tags | 68 |
| `field-_yoast_wpseo_title` | título do Yoast SEO | 16 |
| `field-rank_math_title` | título do Rank Math SEO | 16 |
| `field-_yoast_wpseo_metadesc` | meta descrição do Yoast | 8 |
| `field-rank_math_description` | meta descrição do Rank Math | 8 |
| `package-string-N` | strings do construtor de páginas | 4 |

Cada unidade também possui uma tag `<tool:extradata>` indicando o que ela é e a qual grupo pertence, o que permite distinguir uma categoria de um título sem precisar adivinhar.

Observe os campos do plugin de SEO. **Seus meta títulos e descrições estão neste arquivo**, o que é uma boa notícia e exige uma decisão: uma meta descrição traduzida literalmente raramente é aquela que gera o clique no idioma de destino.

Observe a `URL` também. Seus slugs são traduzíveis e, no exemplo de exportação, foram deliberadamente deixados no idioma de origem. Essa é uma escolha real com consequências para seus links existentes, e somente você pode tomá-la.

### Os shortcodes já estão declarados

Esta é a melhor funcionalidade do WPML e quase ninguém a nota. O cabeçalho de cada arquivo contém uma frase listando todos os shortcodes registrados em seu site:

```xml
<phase phase-name="shortcodes" process-name="Shortcodes identification">
  <note>wp_caption,caption,gallery,playlist,audio,video,embed,
  wpml_language_switcher,product_brand,...</note>
</phase>
```

Seus shortcodes personalizados estão lá junto com os do WordPress. É uma lista legível por máquina de elementos que devem sobreviver ao processo de ida e volta intactos.

## Por que as rotas óbvias prejudicam

*Illustration: Os mesmos 44 arquivos, processados um por um ou enviados como um único trabalho.*

**Abi-los um por um** significa encontrar as linhas de destino dentro do XML, traduzir em torno de tags HTML e shortcodes, salvar e repetir isso mais 43 vezes. E fazer o mesmo para cada um dos outros três idiomas.

**Enviá-los para um tradutor ou agência** significa que o trabalho linguístico ficará bom, mas o trabalho de arquivo não. Você pagará a taxa horária de um especialista para que alguém tenha cuidado com o XML, e pagará novamente na próxima atualização de conteúdo. O custo está na coordenação, não na taxa por palavra.

**Colar o corpo em um assistente de chat** funciona para um post. No décimo, você perdeu o controle de quais arquivos estão prontos, a terminologia divergiu e nada transporta suas decisões de um arquivo para o outro.

## O ciclo completo, em cinco etapas

*Illustration: O ciclo completo. Tudo antes do passo quatro é gratuito, então corrigir um plano errado não custa nada.*

Tudo antes da quarta etapa é gratuito. Isso é mais importante do que parece: um plano que interpretou errado seu arquivo não custa nada para ser corrigido, então não há razão para arriscar.

## Duas formas de executar o processo

As etapas de dois a quatro podem ser feitas no navegador ou inteiramente pelo seu terminal. A escolha muda quem digita, não o resultado final.

*Illustration: Duas formas de executar a mesma tarefa. Escolha qualquer uma, ambas convergem para o mesmo arquivo.*

Escolha com base na sua forma de trabalhar. Se você está lendo isso com um terminal aberto, a opção B exige menos etapas. Se não, a opção A não é uma versão inferior dela.

## Rota 1: envie o ZIP como ele está

O AI Glot aceita XLIFF e ZIP, portanto, uma exportação do WPML entra sem ser aberta. Faça o upload do arquivo e, em seguida, descreva o trabalho em uma frase.

A instrução é em texto livre, e é aqui que as peculiaridades da exportação se tornam fáceis em vez de irritantes:

```
Translate every trans-unit into the target language declared in each file.
Only translate units where the target still holds the same text as the source.
Leave the URL units exactly as they are.
Keep every shortcode, HTML tag and CDATA wrapper untouched.
```

Leia a segunda linha novamente, pois é a que importa. **"Traduza apenas unidades onde o destino ainda contenha o mesmo texto que a origem"** é exatamente a situação de 217 de 228 descrita acima, e significa que você não pagará para refazer as 18 unidades que sua memória de tradução já havia processado.

Você recebe um plano antes de gastar qualquer valor: os idiomas encontrados, o escopo, a contagem de palavras e o custo. Se o plano interpretou algo errado, corrija em uma frase e ele planeja novamente. Depois, você baixa um ZIP com a mesma estrutura, pronto para importar.

## Rota 2: deixe seu agente de IA fazer isso

Se você trabalha com Claude, ChatGPT, Cursor ou qualquer outro agente de codificação, não precisa sequer tocar no navegador. Nossa ferramenta de linha de comando faz o login via OAuth e recebe um arquivo diretamente, permitindo que um agente execute todo o trabalho.

Instale e faça login uma vez:

```bash
npm install -g @ai-glot/cli
aiglot auth login
```

Isso abrirá um navegador para autorizar a máquina. Em um servidor sem navegador, use `aiglot auth login --device` para o fluxo de código de dispositivo, ou `aiglot auth login --key <key>` em CI.

Em seguida, forneça ao seu agente o local do arquivo e deixe-o trabalhar. Algo assim é o suficiente:

```
My WPML export is at ~/Downloads/my-site-export.zip. It is a ZIP of XLIFF
files, one per WordPress post, and each file declares its own target
language.

Use the aiglot CLI to translate it. Run `aiglot batches create --help` and
`aiglot batches approve --help` first so you use the real flags. Create the
batch from the ZIP with an instruction that translates only the units whose
target still equals the source, and leaves the URL units alone. Show me the
plan and the cost before you approve anything. Use the lite quality tier.
Then poll until it is done and download the result next to the original.
```

Duas coisas fazem esse prompt funcionar, e ambas valem a pena ser copiadas.

**Ele instrui o agente a ler a ajuda primeiro.** Um agente que tenta adivinhar nomes de flags falhará na primeira chamada e depois inventará um motivo. O comando `aiglot help --json` despeja todos os comandos, flags e códigos de saída de uma vez, caso ele prefira estrutura.

**Ele coloca uma trava antes do gasto.** O `aiglot batches approve` é o único comando que consome créditos. Tudo antes dele é gratuito, portanto, pedir para ver o plano primeiro não custa nada e evita o tipo mais caro de mal-entendido.

Para referência, esta é a sequência que o agente acabará executando:

```bash
# 1. Create the batch. Free. Returns a plan and an id.
aiglot batches create ~/Downloads/my-site-export.zip \
  --instruction "Translate every trans-unit into the target language declared in each file. Only translate units whose target still holds the same text as the source. Leave URL units unchanged. Keep shortcodes, HTML and CDATA intact." \
  --json

# 2. Approve. This is the only step that spends credits.
aiglot batches approve <batch-id> --quality lite

# 3. Poll until it finishes.
aiglot batches get <batch-id> --json

# 4. Download the translated archive.
aiglot batches download <batch-id> --output ~/Downloads/my-site-export.translated.zip
```

Também existe um servidor MCP (`aiglot mcp`) se o seu agente preferir ferramentas em vez de um shell. A CLI é o melhor ponto de partida: funciona em scripts, funciona em CI e você consegue ver exatamente o que foi executado.

## Integrando seu glossário

Se o seu site possui termos que não podem variar, como o nome de um produto ou a tradução oficial de uma frase recorrente, adicione-os ao glossário do workspace uma única vez. Eles serão aplicados a todos os arquivos do arquivo e também à próxima exportação.

Esta é a parte que um tradutor automático processa mal. O glossário dele substitui um termo onde quer que ele apareça. Aqui, o glossário é tratado como um lemma, portanto, ele se flexiona e conjuga de acordo com a frase ao redor, em vez de apenas inserir uma string fixa no meio do texto.

## Importando de volta para o WPML

O arquivo traduzido retorna com a mesma estrutura: a mesma pasta `posts/`, os mesmos nomes de arquivos, as mesmas unidades na mesma ordem, com os alvos preenchidos. A tela de tarefas de tradução do WPML aceita o arquivo da mesma forma que o entregou.

*Illustration: A mesma unidade antes e depois. Apenas a linha de destino mudou, que é a premissa fundamental de um round trip.*

Duas sugestões baseadas na estrutura do próprio arquivo. **Importe um arquivo primeiro** e visualize o post no WordPress antes de processar todo o arquivo, pois uma string de page builder no lugar errado é muito mais fácil de notar renderizada do que em XML. E **decida sobre os slugs antes de importar**, não depois: alterar uma URL publicada gera um redirecionamento que você terá que manter.

## A real abrangência disso

Use isso para o volume bruto. Quarenta e quatro posts em quatro idiomas é exatamente o tipo de trabalho que é miserável de fazer manualmente e trivial em uma única passagem. Deixe a revisão humana para onde ela realmente agrega valor: suas páginas de maior tráfego e qualquer conteúdo onde a redação seja o produto. Muitas equipes usam o AI Glot como primeira etapa e têm um revisor analisando o resultado, o que é um bom uso de um especialista e um uso ruim de uma tarde gasta dentro de arquivos XML.

Para a página inicial, contrate um tradutor. Para o arquivo de 44 posts que você exportou esta manhã, não gaste a sua semana nisso.

---

*A estrutura de exportação descrita aqui foi baseada em uma exportação real do WPML de 44 posts em quatro pares de idiomas. Sua exportação pode variar se o seu site utilizar um page builder ou plugin de SEO diferente, e os IDs das unidades refletirão seus próprios plugins. A pasta `posts/`, o formato XLIFF 1.2, o par de idiomas por arquivo e os alvos copiados da fonte são as partes que foram consistentes em todos os 44 arquivos.*