# Como corrigir erros de tradução de templates entre Elementor e WPML no WordPress

A tradução com Elementor WPML falha quando templates da biblioteca, cabeçalhos, rodapés e layouts do Theme Builder não são enviados para o Painel de Tradução do WPML, continuam exibindo o idioma original ou perdem a tradução após o template original ser editado.

## O que é tradução de templates Elementor com WPML?

A tradução com Elementor WPML envolve mais do que traduzir a página: o Elementor monta áreas do site a partir de templates, sendo eles templates salvos na biblioteca, layouts globais inseridos em várias páginas e os templates do Theme Builder (cabeçalho, rodapé, single, arquivo). O WPML não trata esses templates como parte automática da página onde aparecem. Cada template é um conteúdo próprio que precisa ser traduzido pelo Painel de Tradução do WPML antes de ser exibido em outro idioma.

O erro de tradução aparece quando essa ordem é quebrada. Segundo a documentação oficial do WPML, templates do Elementor, como layouts globais ou qualquer template salvo inserido nas páginas, devem ser traduzidos antes do restante do conteúdo. Quando o template fica de fora do Painel de Tradução, ou quando o método de tradução escolhido não casa com a forma como o conteúdo foi montado no Elementor, o cabeçalho, o rodapé ou o bloco salvo continuam no idioma original mesmo com a página traduzida.

## Como identificar

- A página traduzida abre no idioma de destino, mas o cabeçalho e o rodapé construídos no Elementor Theme Builder continuam exibindo o texto no idioma original.
- Um template salvo da biblioteca do Elementor inserido em várias páginas aparece no idioma original em todas as versões traduzidas.
- No Painel de Tradução do WPML o template do Elementor nem aparece na lista de conteúdos disponíveis para tradução.
- Após editar o template original no Elementor, a versão traduzida fica desatualizada e o WPML marca a tradução como 'needs update' (precisa de atualização).
- Textos inseridos por widgets do Elementor (botões, títulos, chamadas) ficam sem tradução porque foram registrados como strings e não foram traduzidos no String Translation.

**Antes de começar:** Antes de alterar o método de tradução no WPML ou regenerar arquivos do Elementor em um site em produção, faça um backup completo (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para reverter caso alguma tradução existente seja afetada.

## Como prevenir

- Traduza sempre os templates do Elementor, cabeçalho, rodapé e templates salvos, antes de traduzir as páginas que os utilizam, seguindo a ordem recomendada pelo WPML.
- Mantenha o conteúdo do Elementor no Advanced Translation Editor do WPML para que os widgets do builder sejam capturados na tradução.
- Sempre que editar um template original no Elementor, reenvie a versão traduzida ao Painel de Tradução para não exibir conteúdo desatualizado.
- Padronize os textos globais como strings e revise periodicamente o String Translation do WPML para garantir que nenhum rótulo de widget fique no idioma de origem.

Erros relacionados

- [Como corrigir conflito entre Elementor e tema WordPress](https://full.services/wp-fixer/corrigir-conflito-elementor-tema/)
- [Como corrigir CSS do Elementor que não aplica no frontend](https://full.services/wp-fixer/corrigir-elementor-css-nao-aplica/)

## Causa

- O template do Elementor (cabeçalho, rodapé ou template salvo) não foi enviado ao Painel de Tradução do WPML, em WPML e Painel de Tradução, então o template permanece no idioma original em todas as páginas onde é inserido.
- O conteúdo foi traduzido fora da ordem recomendada: a página foi traduzida antes do template, e a documentação do WPML orienta traduzir os templates do Elementor antes do restante do conteúdo.
- O método de tradução do conteúdo está como editor padrão do WordPress em vez do Advanced Translation Editor do WPML, fazendo a tradução não capturar os widgets montados no Elementor.
- O template original foi editado no Elementor depois de traduzido, o WPML marcou a tradução como precisa de atualização e a versão antiga continua sendo exibida até o reenvio para tradução.
- Textos de widgets do Elementor que viram strings (como rótulos de botão e títulos globais) não foram traduzidos no WPML String Translation, em WPML e Tradução de Textos, e seguem no idioma de origem.

## Como resolver

1. Traduza os templates do Elementor antes das páginas: Abra o Painel de Tradução do WPML e selecione primeiro os templates do Elementor, os do Theme Builder como cabeçalho e rodapé e os templates salvos da biblioteca, antes de traduzir as páginas que os utilizam. A documentação do WPML recomenda traduzir os templates antes do restante do conteúdo.

```
Painel WP -> WPML -> Painel de Tradução
Marque os templates do Elementor (cabeçalho, rodape, single, templates salvos)
Escolha o idioma de destino e clique em Traduzir
```

2. Use o Advanced Translation Editor para o conteúdo do Elementor: Confirme que o conteúdo construído com Elementor está configurado para usar o Advanced Translation Editor do WPML, e não o editor padrão do WordPress. O editor avançado captura o texto dos widgets do Elementor para tradução; o editor padrão tende a deixar a estrutura de blocos do builder de fora.

```
Painel WP -> WPML -> Configurações
Em 'Como traduzir posts e páginas' selecione 'Use the Advanced Translation Editor'
Salve e reabra o conteúdo no Painel de Tradução
```

3. Reenvie templates marcados como precisa de atualização: Depois de editar um template original no Elementor, o WPML marca a tradução com o status precisa de atualização. Reenvie esse template ao Painel de Tradução para que a versão traduzida acompanhe a alteração e pare de exibir o conteúdo antigo.

```
Painel WP -> WPML -> Painel de Tradução
Localize o template com status 'needs update' (precisa de atualização)
Marque o template e reenvie para tradução
```

4. Traduza as strings do Elementor no String Translation: Textos de widgets que o Elementor registra como strings, como rótulos de botão e títulos globais, são traduzidos em WPML e Tradução de Textos, não no editor da página. Filtre pelo domínio do Elementor, localize a string no idioma original e informe a tradução.

```
Painel WP -> WPML -> Tradução de Textos
Filtre por domínio que contenha 'elementor'
Adicione a tradução de cada string e marque como completa
```

5. Limpe os caches do Elementor e do site: Após traduzir templates e strings, regenere os arquivos CSS do Elementor e limpe qualquer cache de página, pois CSS e HTML antigos em cache podem continuar servindo a versão no idioma original do template.

```
Painel WP -> Elementor -> Ferramentas -> Regenerar Arquivos e Dados
Limpe o cache do plugin de cache instalado (se houver)
Recarregue a página traduzida com o cache do navegador desativado
```


## Código

```php
<?php
// Marca o template do Elementor como traduzível e registra rótulos do tema
// como strings do WPML, para que apareçam em WPML > Tradução de Textos.
add_filter( 'wpml_translatable_documents', function ( $types ) {
    // Inclui os templates do Elementor (biblioteca) entre os conteúdos traduzíveis.
    $types['elementor_library'] = 'elementor_library';
    return $types;
} );

add_action( 'wp_loaded', function () {
    if ( ! function_exists( 'do_action' ) ) {
        return;
    }
    // Registra uma string fixa do template no String Translation do WPML.
    do_action(
        'wpml_register_single_string',
        'elementor-template',   // domínio que você filtra no String Translation
        'cta_botao_template',    // nome da string
        'Fale com a gente'       // texto no idioma original
    );
} );
```

## Perguntas frequentes

### Por que o cabeçalho e o rodapé do Elementor não traduzem com o WPML

Porque cabeçalho e rodapé são templates do Theme Builder do Elementor, conteúdos próprios que o WPML não traduz junto com a página. Envie esses templates ao Painel de Tradução do WPML e traduza cada um separadamente para que apareçam no idioma de destino.

### Devo traduzir os templates do Elementor antes ou depois das páginas

Antes. A documentação oficial do WPML recomenda traduzir os templates do Elementor, como layouts globais e templates salvos, antes do restante do conteúdo, garantindo que a página traduzida já encontre o template no idioma correto.

### Qual editor de tradução devo usar para páginas feitas no Elementor

Use o Advanced Translation Editor do WPML. Ele captura o texto dos widgets montados no Elementor para tradução, enquanto o editor padrão do WordPress tende a deixar a estrutura de blocos do builder de fora, gerando trechos sem tradução.

### Por que a tradução do template ficou desatualizada depois que editei o original

Ao editar o template original no Elementor, o WPML marca a tradução com o status precisa de atualização e mantém a versão antiga até o reenvio. Reenvie o template ao Painel de Tradução para que a versão traduzida acompanhe a alteração.

### Como traduzir textos de botões e títulos globais do Elementor no WPML

Esses textos costumam ser registrados como strings. Vá em WPML e Tradução de Textos, filtre pelo domínio do Elementor, localize a string no idioma original e informe a tradução, pois esse conteúdo não é traduzido pelo editor da página.

### Por que o template do Elementor nem aparece no Painel de Tradução do WPML

Em geral o tipo de conteúdo do template não está configurado como traduzível no WPML ou o template ainda não foi salvo como conteúdo da biblioteca. Confira em WPML, em Configuração de Conteúdo Multilíngue, se o tipo de post do template está marcado como traduzível.

### Traduzir o template no WPML afeta o design no idioma original

Não. O WPML cria uma versão separada do template para cada idioma, então o design e o conteúdo do idioma original permanecem intactos. Você pode inclusive ajustar o layout por idioma sem alterar a versão original.

**Fonte:** [WPML: Documentação oficial](https://wpml.org/documentation/)
