0
13

SHARE

Internacionalização de Blocos Gutenberg (i18n)

Internationalização de Blocos Gutenberg (i18n)

Aprenda como tornar seus blocos Gutenberg compatíveis com múltiplos idiomas usando funções i18n como __(), arquivos .pot e boas práticas de tradução.
Este post é a parte 15 de 16 da Série WordPress Extremo: Gutenberg + React + Blocos Customizados

Fala Dev! Blz?

A internacionalização (i18n) é essencial para tornar seus blocos acessíveis a usuários de diferentes idiomas.

O WordPress tem uma infraestrutura robusta para isso, e felizmente o Gutenberg já vem pronto para ser traduzido.


🗂️ O que você vai aprender

  • Como preparar seus blocos para tradução.
  • Como usar o __() e sprintf() do WordPress.
  • Como carregar traduções com wp_set_script_translations().
  • Onde e como gerar os arquivos .pot, .po, .mo.

📦 Estrutura mínima do bloco com i18n

Exemplo: blocks/hello/index.js

import { registerBlockType } from '@wordpress/blocks';
import { __ } from '@wordpress/i18n';
import edit from './edit';
import save from './save';
import metadata from './block.json';

registerBlockType(metadata.name, {
  ...metadata,
  title: __('Hello World', 'wp24h'),
  description: __('A simple hello world block.', 'wp24h'),
  edit,
  save,
});

🔁 Use __(), _x(), sprintf() ou translate() de @wordpress/i18n para qualquer texto exibido.


🧠 i18n nos arquivos edit.js ou save.js

import { __ } from '@wordpress/i18n';

const title = __('Este é um título traduzível', 'wp24h');

📄 block.json com campos traduzíveis

{
  "apiVersion": 2,
  "name": "wp24h/hello",
  "title": "Hello World", 
  "description": "Bloco de exemplo.",
  "category": "widgets",
  "icon": "smiley",
  "textdomain": "wp24h",
  "editorScript": "file:../../dist/hello.js"
}

O textdomain deve bater com o nome do seu plugin (ou do seu tema, se aplicável).


🔄 Carregando traduções via PHP

No Init.php do seu plugin:

add_action('init', function () {
    wp_set_script_translations('wp24h-hello', 'wp24h', plugin_dir_path(__FILE__) . '../../languages');
});

Aqui, 'wp24h-hello' é o handle do script registrado no register_block_type.


🧰 Gerando arquivos .pot

No terminal, use:

npx @wordpress/scripts make-pot ./languages

Isso gera um arquivo .pot com todas as strings encontradas nos blocos.

Para editar e traduzir, use ferramentas como:


📁 Estrutura de pastas ideal

plugin/
├── blocks/
│   └── hello/
│       └── index.js
├── dist/
├── languages/
│   ├── wp24h-pt_BR.po
│   └── wp24h-pt_BR.mo

✅ Checklist de i18n no Gutenberg

EtapaFeito?
Usar __() em todos os textos JS
Adicionar textdomain no block.json
Chamar wp_set_script_translations()
Gerar .pot com make-pot
Traduzir .po.mo

✨ Resultado

Com a i18n configurada:

  • Usuários veem textos no idioma do WordPress.
  • Blocos podem ser usados em plugins ou temas multilíngues.
  • Traduções funcionam tanto no editor quanto no frontend.
Navegação<< Como Criar Blocos Condicionais no Gutenberg com AtributosScripts e Estilos Condicionais: Carregando apenas quando necessário >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Como Carregar Scripts e Estilos no WordPress Apenas Quando Necessário

Scripts e Estilos Condicionais: Carregando apenas quando necessário

Como Criar Blocos Condicionais no Gutenberg com Atributos

Como Criar Blocos Condicionais no Gutenberg com Atributos

Comunicação entre Blocos com Block Context API no WordPress

Comunicação entre Blocos com Block Context API no WordPress

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Como Salvar Dados Personalizados no WordPress Usando Blocos Gutenberg e REST API

Salvando Dados Personalizados no Backend via REST API

Checklist Final de Publicação - WordPress.org e Produção

Checklist Final de Publicação: WordPress.org e Produção

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!