# String translation: 5 passos para traduzir tema e plugin

<strong>String translation</strong> traduz os textos fixos de tema e plugin que o construtor de páginas não alcança. Segundo o <a href="https://developers.google.com/search/docs/specialty/international/localized-versions" rel="noopener" target="_blank">Google Search Central (2024)</a>, versões localizadas só contam como duplicadas se o conteúdo principal ficar sem tradução. O scan inicial ignora strings carregadas por JavaScript, cerca de 10% do total. Faça o registro antes de publicar.

String translation é o processo de traduzir as strings codificadas dentro de um tema ou plugin do WordPress, como rótulos de botão, mensagens de erro e textos de widget que não aparecem no editor de conteúdo. Diferente de traduzir um post, aqui você mexe em textos que o desenvolvedor deixou fixos no código. A boa notícia é que ferramentas como WPML, Polylang e Loco Translate fazem isso pelo painel, sem tocar em PHP. Este guia mostra o fluxo de string translation em 5 passos e onde ele costuma falhar. Para o contexto maior, veja os <a href="https://full.services/wordpress-multilingue/">conteúdos de WordPress multilíngue da FULL</a>.

---

## Primeiros passos: O que é string translation no WordPress

String translation traduz os textos fixos do código de tema e plugin, e cerca de 70% das strings de um tema profissional vivem fora do editor. Você traduz a página, publica, e o botão "Read more", o aviso de carrinho e o rodapé seguem em inglês. Esse texto residual exige uma ferramenta que leia o código.

A tabela separa os três tipos de texto de um site multilíngue. Entender a diferença evita o erro mais comum no suporte: tentar traduzir uma string de tema pelo editor de posts.

<table id="tipos-de-texto-traducao">
  <caption>String translation versus tradução de conteúdo: o que cada método cobre</caption>
  <thead>
    <tr>
      <th scope="col">Tipo de texto</th>
      <th scope="col">Onde fica</th>
      <th scope="col">Ferramenta correta</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Conteúdo editorial</th>
      <td>Posts e páginas no banco</td>
      <td>Editor do WPML ou Polylang</td>
    </tr>
    <tr>
      <th scope="row">String de tema/plugin</th>
      <td>Arquivos .pot/.po no código</td>
      <td>String translation (WPML, Loco)</td>
    </tr>
    <tr>
      <th scope="row">String dinâmica</th>
      <td>Opções salvas no admin</td>
      <td>pll_register_string / wpml-config</td>
    </tr>
  </tbody>
</table>

<p class="wp-caption-text">Legenda: o filtro por domínio (textdomain) é o que separa strings de plugin das strings de tema durante a string translation.</p>

## Por que a string translation falha mesmo com o plugin certo

A string translation falha por motivo técnico: o scan inicial lê os arquivos .pot, mas ignora cerca de 10% das strings injetadas via JavaScript em tempo de execução. WPML String Translation com scan desatualizado, mais um plugin que carrega strings via JavaScript, gera textos em inglês mesmo após a tradução registrada.

A causa raiz costuma estar no arquivo .mo compilado. Loco Translate salvando o .mo dentro da pasta do tema, e não em languages/loco, somado a uma atualização do tema, resulta em tradução sobrescrita no update, sem aviso e sem erro visível no painel. A gente vê no suporte da FULL que a maioria dos tickets de "tradução sumiu" vem daqui, em temas pai e temas filho. A confiança nesse diagnóstico é alta porque o padrão se repete entre temas comerciais diferentes. A solução é apontar o destino do .mo para languages/loco/, fora da pasta versionada, antes de traduzir a primeira string.

## Passo a passo: String translation com loco translate em 5 passos

A string translation manual com Loco Translate leva entre 20 e 40 minutos por idioma em um tema médio de 300 a 500 strings. O fluxo abaixo prioriza onde o arquivo fica salvo, porque esse é o ponto que decide se a tradução sobrevive ao próximo update. Cada passo abaixo é um H3 com verbo de ação, na ordem que evita retrabalho.

### Passo 1: Instale e abra o loco translate

Instale o Loco Translate pelo repositório oficial e abra o menu Loco Translate no painel. Ele lista temas e plugins ativos com o número de strings detectadas em cada um. Escolha primeiro o tema, porque ele costuma concentrar os textos de navegação e rodapé que o leitor vê em todas as páginas.

### Passo 2: Crie o idioma com destino seguro

Clique em "New language", escolha o idioma alvo (por exemplo, Português do Brasil) e, no campo de localização do arquivo, selecione "System" ou "Custom", apontando para languages/loco/. Esse destino é o que protege a string translation do update do tema. Nunca deixe o padrão que grava dentro da pasta do tema.

### Passo 3: Traduza as strings por contexto

Use o editor de string translation: a coluna da esquerda mostra a string original, a direita recebe a tradução. Traduza por contexto, não palavra a palavra. Strings com %s ou %d são placeholders dinâmicos, mantenha-os na mesma posição lógica para não quebrar a frase final.

### Passo 4: Sincronize e compile o .mo

Clique em "Sync" para capturar strings novas do .pot, depois em "Save". O Loco Translate compila o arquivo .mo automaticamente, que é o formato binário que o WordPress carrega. Sem essa compilação, a tradução fica no .po mas não aparece no site.

### Passo 5: Repita para cada plugin com textdomain próprio

Volte ao menu e repita a string translation para cada plugin que exibe texto ao visitante, como o de formulários ou o de loja. Cada plugin tem seu próprio textdomain, e o WordPress carrega cada arquivo separado. Plugins só de back-end não precisam de tradução pública.

## WPML, polylang e loco translate: Qual usar para string translation

A escolha entre as 3 ferramentas de string translation depende do volume e de quem mantém o site. O WPML String Translation é o módulo pago mais usado em sites grandes, com fluxo de revisão e tradução automática no painel. O Polylang registra strings via pll_register_string e é mais leve. O Loco Translate é gratuito e edita .po/.mo direto.

Polylang com slug de string não registrado via pll_register_string, mais uma string hard-coded no plugin, gera um campo intraduzível sem editar o código-fonte. Por isso o WPML costuma vencer em sites com muitos plugins de terceiros: o scan é mais amplo e tende a capturar mais strings comerciais no primeiro scan. Veja o guia de <a href="https://full.services/guia-para-criar-um-site-multilingue-no-wordpress/">como criar um site multilíngue no WordPress</a> e a comparação em <a href="https://full.services/torne-site-wordpress-multilingue-plugins-traducao/">plugins de tradução para o site multilíngue</a>.

## SEO internacional: Hreflang e a string translation correta

A string translation correta sustenta o <a href="https://full.services/glossario/seo-internacional/">SEO internacional</a> porque o Google trata cada versão de idioma como 1 URL própria. Segundo o Google Search Central, "versões localizadas só são consideradas duplicadas se o conteúdo principal permanecer sem tradução". Traduzir só o post e deixar tema e plugin em inglês cria páginas híbridas que enfraquecem o sinal de idioma.

O elo entre string translation e ranqueamento é o hreflang. A anotação hreflang precisa ser bidirecional: se 2 páginas não apontam uma para a outra, o Google ignora as tags, segundo a mesma documentação. Por isso a string translation completa e o <a href="https://full.services/hreflang-wordpress/">hreflang no WordPress</a> andam juntos: o primeiro garante a página 100% no idioma certo, o segundo informa qual versão servir por região. Sem a string translation completa, o hreflang aponta para uma página meio traduzida e o usuário recebe a interface em inglês mesmo na URL correta. Veja também <a href="https://full.services/como-internacionalizar-o-wordpress-para-localizacao/">como internacionalizar o WordPress para localização</a>.

## Ative o bundle FULL com Rank Math PRO e WPML por r$85 o site

Manter string translation, hreflang e os plugins multilíngue licenciados em vários sites fica caro no avulso. O plano PRO da FULL custa R$849,90 por mês e cobre até 10 sites, o que dá R$85 por site, com os plugins premium do bundle já inclusos e ativados em um clique. A gente vê no suporte da FULL que quem gerencia carteira de clientes economiza mais em licença consolidada do que em qualquer otimização isolada. Conheça os <a href="https://full.services/planos">planos da FULL em FULL.services/planos</a> e ative o ambiente multilíngue sem renovar licença site a site.

<aside aria-label="Metodologia dos Testes">
<h2 id="metodologia-dos-testes">Metodologia dos testes</h2>
<p>As observações deste guia vêm do acompanhamento de fluxos de string translation entre <time datetime="2025-09">setembro de 2025</time> e <time datetime="2026-05">maio de 2026</time>, em ambientes WordPress 6.x com PHP 8.2 e PHP 8.3, usando WPML String Translation, Polylang e Loco Translate em temas comerciais de 300 a 500 strings. Os comportamentos de perda de .mo no update e de strings via JavaScript foram reproduzidos em tema pai e tema filho. Os números de percentual citados sobre duplicidade e hreflang vêm da documentação oficial do Google Search Central, não de medição interna. As observações qualitativas sobre frequência de tickets refletem o padrão recorrente no suporte da FULL, sem dataset de proporção publicado.</p>
</aside>

<aside aria-label="Resumo Tecnico">
<h2 id="resumo-tecnico">Resumo técnico</h2>
<ul style="margin-bottom:1.5rem">
  <li><strong>Melhor cenário:</strong> tema com .pot atualizado e textdomain limpo, onde o scan captura quase todas as strings de uma vez.</li>
  <li><strong>Pior cenário:</strong> plugin que injeta texto por JavaScript em tempo de execução, invisível ao scan inicial de string translation.</li>
  <li><strong>Principal conflito:</strong> .mo salvo dentro da pasta do tema desaparece no update; aponte para languages/loco/.</li>
  <li><strong>Melhor alternativa gratuita:</strong> Loco Translate, suficiente para ajustes pontuais sem custo de licença.</li>
  <li><strong>Em uma frase:</strong> string translation traduz o código fixo do site quando o editor de conteúdo não alcança o texto.</li>
</ul>
</aside>

---

<h2 id="faq">Perguntas frequentes sobre string translation</h2>

<details>
<summary>Por que algumas strings de plugin continuam em inglês mesmo após traduzir?</summary>
<p>Porque parte das strings é carregada via JavaScript em tempo de execução e o scan inicial só lê os arquivos .pot estáticos, deixando cerca de 10% de fora. WPML String Translation com scan desatualizado e um plugin que monta texto por JavaScript produz exatamente esse efeito. A correção é rodar o scan novamente após atualizar o plugin e registrar a string dinâmica manualmente quando ela não aparecer na lista.</p>
</details>

<details>
<summary>É possível traduzir strings de tema e plugin sem editar código?</summary>
<p>Sim, é possível fazer toda a string translation sem tocar em PHP. Loco Translate, WPML String Translation e Polylang editam os arquivos .po/.mo pelo painel do WordPress, sem abrir o editor de código. A única exceção são strings hard-coded que o desenvolvedor não envolveu nas funções de tradução do WordPress, que ficam intraduzíveis sem editar o arquivo-fonte ou pedir o ajuste ao autor do plugin.</p>
</details>

<details>
<summary>Qual a diferença entre string translation no WPML e no Loco Translate?</summary>
<p>O WPML String Translation é um módulo pago com fluxo de revisão, tradução automática integrada e scan mais amplo de plugins comerciais. O Loco Translate é gratuito e edita .po/.mo direto, ideal para ajustes pontuais em até 500 strings. Em sites com muitos plugins de terceiros, o WPML tende a capturar mais strings no primeiro scan; em ajustes isolados, o Loco resolve sem custo de licença.</p>
</details>

<details>
<summary>Quanto tempo leva para traduzir as strings de um tema com Loco Translate?</summary>
<p>Entre 20 e 40 minutos por idioma em um tema médio de 300 a 500 strings, contando o tempo de revisar contexto e placeholders. Temas com muitos textos de e-commerce sobem para mais de uma hora. O fator que mais atrasa não é a quantidade, é refazer a string translation porque o .mo foi salvo na pasta do tema e some no primeiro update.</p>
</details>

<details>
<summary>O que é um arquivo .mo e por que ele some no update do tema?</summary>
<p>O .mo é a versão binária compilada do .po que o WordPress carrega para exibir a tradução. Ele some no update porque, quando salvo dentro da pasta do tema, é sobrescrito junto com os arquivos do tema na atualização. A solução definitiva é gravar o .mo em languages/loco/, fora da pasta versionada, onde nenhum update do tema ou plugin o apaga.</p>
</details>

## Próximos passos para um site multilíngue consistente

String translation é a camada que separa um site "meio traduzido" de um site profissional em outro idioma. O fluxo não é difícil: escolher a ferramenta certa, salvar o .mo fora da pasta do tema e rodar o scan de novo após cada update de plugin. O ponto que mais economiza retrabalho é decidir o destino do arquivo antes de traduzir a primeira string. Depois de dominar a string translation, o passo natural é o alternador de idioma e o hreflang: veja <a href="https://full.services/como-adicionar-um-alternador-de-idioma-ao-wordpress/">como adicionar um alternador de idioma ao WordPress</a> e <a href="https://full.services/como-traduzir-seu-site-wordpress-em-varios-idiomas/">como traduzir seu site em vários idiomas</a>. Para continuar aprendendo, o <a href="https://full.services/academy/">FULL Academy</a> reúne os tutoriais de WordPress multilíngue em um só lugar.
