Como corrigir erros de tradução de templates entre Elementor e WPML no WordPress
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.
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.
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
- 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 - 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 - 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 - 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 - 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
<?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
);
} );














