Depois de meses pensando nisso, decidi criar uma versão em inglês do blog para tentar captar trabalhos entre o público-alvo da Codeable (basicamente qualquer pessoa que consiga pagar em dólar americano sem sofrer absurdamente com o câmbio). Estava entre transformar essa instalação WordPress em multisite ou usar um plugin e, depois de uma conversa no twitter, decidi usar o Polylang.
Eu costumava trabalhar com o WPML, mas como o Polylang é grátis decidi tentar. Como o tema aqui do blog é simples não tive nenhuma dificuldade, a não ser com a tradução de uma opção que eu tenho no Personalizar. Está vendo a licença da Creative Commons que eu uso aqui no rodapé? Então, isso é um campo no Personalizar, criado dessa forma:
function felipeelia_customize_register( $wp_customize ) {
$wp_customize->add_section(
'felipeelia_rodape',
array(
'title' => 'Rodapé',
'priority' => 125,
)
);
$wp_customize->add_setting(
'copyright',
array(
'default' => '',
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_control(
'copyright',
array(
'label' => 'Copyright',
'section' => 'felipeelia_rodape',
'settings' => 'copyright',
'type' => 'textarea',
)
);
}
add_action( 'customize_register', 'felipeelia_customize_register' );
Dessa forma eu crio um campo Copyright na seção Rodapé do Personalizar e depois eu uso esse código no meu footer.php:
<?php echo get_theme_mod( 'copyright' ); ?>
Acontece que eu precisava traduzir o texto e eu não sabia como. Até desconfiava, mas ainda não tinha feito nada parecido. Há muito tempo, o WPML criou um padrão de arquivo, o wpml-config.php, que permite que plugins e temas declarem quais tipos de conteúdo, taxonomias e opções de administração deveriam ser traduzidas. Theme mods entram nessa categoria de opções de administração. Como já era o padrão da época, o Polylang também usa esse mesmo arquivo. Sim, com o nome do concorrente no nome.
Na verdade, tudo o que é armazenado na tabela wp_options fica na categoria de textos administrativos. Opções do tema, essas que a gente chama com get_theme_mod, ficam em uma opção com nome theme_mods_NOMETEMA e cujo valor é um array associativo serializado, ou seja, é um array com chaves nomeadas que passa pela função serialize do PHP antes de ser armazenado. No fim das contas, tudo o que eu precisei fazer foi criar um arquivo chamado wpml-config.xml na raíz do meu tema e colocar o seguinte conteúdo nele:
<wpml-config>
<admin-texts>
<key name="theme_mods_felipeelia">
<key name="copyright" />
</key>
</admin-texts>
</wpml-config>
Reparem que felipeelia, nesse caso, é o slug do meu tema.
Se esse conteúdo foi útil para você, não se esqueça de compartilhar e deixar um comentário! Isso sempre ajuda bastante 🙂