
Em 12 de fevereiro, foi lançada a versão final do GenerateBlocks 2.0 (GB), após um longo ciclo que começou em 24 de novembro de 2024 com a sua primeira versão alfa.1, que tenho vindo a testar desde o início.
A versão 2.0 é uma daquelas que esconde grandes melhorias "debaixo do capot" para manter os sítios bem optimizados. A versão 2.0 permite-lhe manter os blocos da versão 1.0 ou mesmo voltar a eles, se necessário.
Embora ainda estejam a afinar o desempenho final e a usabilidade seja ainda a sua tarefa inacabada, com uma curva de aprendizagem acentuada, uma vez que parecem ainda não ter encontrado o equilíbrio "visual" das configurações de blocos, isto é compensado por um apoio impecável e uma documentação muito completa.
Este plugin de blocos, criado por Tom Usborne, é muito jovem. Tem pouco mais de dois anos. A sua versão 1.0 foi lançada em 30 de agosto de 2022.
Isso não impediu que, juntamente com o GeneratePress (GP), se tornasse a combinação ideal para conceber e/ou construir parte ou quase todo o seu design WordPress, uma vez que oferece um código limpo, leve e rápido. Até hoje, continua a ser escolhido por um grande número de utilizadores do WordPress, desde bloguistas de "nicho" a bloguistas caseiros.
Devemos insistir que o GenerateBlocks não é um construtor, como o Elementor ou outros chamados "Site Builders", embora possa ser utilizado como tal, é uma abordagem diferente que não tem nada a ver com o tradicional "arrastar e largar". Trata-se de um plugin de blocos.
Se há uma coisa que é justo avaliar e aplaudir no GB+GP, é o seu apoio. Eles compreenderam muito bem os seus utilizadores e acertaram em cheio no que diz respeito ao serviço ao cliente. No seu fórum de apoio pode resolver quase tudo.
Ajudam-no mesmo com questões que nem sempre estão relacionadas com erros ou dúvidas sobre a utilização, também ajudam quando se trata de construir ou redesenhar coisas específicas. Sempre com um tratamento amigável e resoluto. E o melhor é que todas estas questões, discussões e soluções podem ser consultadas por qualquer pessoa, mesmo que não utilize as suas versões pagas.
Só isto já vale cada dólar que paga pelo seu modelo e pelo plugin de blocos.
Deixo aqui, como lembrete e "reconsulta" para o futuro, um exemplo de uma solução (e não é a primeira) de uma destas consultas no vosso fórum de suporte que me permitiu traduzir algumas strings dinamicamente. Eram as últimas a serem traduzidas e estavam a resistir.
Muito provavelmente, para alguém com conhecimentos de programação, é como coçar o nariz, mas para os técnicos avançados com conhecimentos básicos, como eu, é uma verdadeira dádiva.
Traduzir texto de um bloco GenerateBlocks "Texto" utilizando Polylang
O plugin Polylang permite-lhe registar cade ias de caracteres para adicionar as respectivas traduções onde quiser. Para o fazer, basta adicionar as sequências de caracteres da seguinte forma ao ficheiro functions.php do tema :
pll_register_string('Publicado:', 'Published:');
pll_register_string('Actualizado:', 'Updated:');
Assim, já aparecerão para tradução num grupo chamado Polylang em Línguas/traduções:

Mas isto não é suficiente, agora tem de invocar cada uma destas traduções com código PHP para as apresentar.
A missão é traduzir dinamicamente para cada língua as cadeias de caracteres Published: e Updated: que adicionei na altura num elemento GP com um bloco "Text" GB 2.0 (anteriormente designado "Headline").
Structure of the GB Text block
Publicado: {{post_date}} | Actualizado: {{post_date type:modified}} |

O problema é que não consegui encontrar uma forma de adicionar as chamadas PHP Polylang para substituir essas duas palavras consoante a língua em que a página é apresentada:
<?php echo pll__('Published:'); ?>
<?php echo pll__('Updated:'); ?>
O bloco GB não executa código PHP e não havia possibilidade de o inserir com um shortcode. Nesta altura, declarei-me incapaz de encontrar uma solução e decidi consultar o fórum de apoio.
E depois de algumas mensagens, a solução chegou.
1. É adicionada uma classe CSS ao bloco "Text". Para este exemplo, utilizamos: my-post-dates

2- Este filtro é adicionado no ficheiro functions.php do modelo:
add_filter( 'render_block', function( $block_content, $block ) {
if ( ! empty( $block['attrs']['className'] ) && 'my-post-dates' === $block['attrs']['className'] ) {
$published = pll__('Published:');
$updated = pll__('Updated:');
// Ensure these values are translated, fallback to default if empty
$translated_published = !empty($published) ? $published : 'Published:';
$translated_updated = !empty($updated) ? $updated : 'Updated:';
$block_content = str_replace('Publicado', $published, $block_content);
$block_content = str_replace('Actualizado', $updated, $block_content);
}
return $block_content;
}, 10, 2 );
E já está. Agora, essas duas palavras serão apresentadas na língua selecionada de entre as que está a utilizar.
Esta publicação contém dois links de afiliados.