WPML

Aprenda a usar as funções do gettext para tornar os textos em temas e plugins traduzíveis no WPML.

Para garantir que os textos em temas e plugins sejam traduzíveis e apareçam corretamente no seu site, você precisa atender a duas condições:

  • Envolver os textos em uma função gettext
  • Incluir um argumento de domínio de texto

Noções básicas do gettext

Considere a seguinte string, “Thank you!”, que pertence ao domínio “my-plugin-domain”:

__( 'Thank you!', 'my-plugin-domain' );

Para exibir a string no navegador, use a função _e():

_e( 'Thank you!', 'my-plugin-domain' );

Ao usar HTML, coloque-o dentro de tags HTML:

<h2><?php _e( 'Thank you!', 'my-plugin-domain' ); ?></h2>

Se você tiver um link separado do texto ao redor, use a função esc_html_e():

<a href="http://wpml.org/" ><?php esc_html_e( 'Translated with WPML', 'my-domain' ); ?></a>

Melhores práticas do gettext

1. Nunca envolva uma variável ou constante em uma função gettext

Isso fará com que as strings não possam ser escaneadas e, portanto, não sejam traduzíveis.

Incorreto

<?php
if ( $morning ) {
   define( 'GREETING', 'Good morning' );
} else {
   define( 'GREETING', 'Good afternoon' );
}
 
_e( GREETING, 'my-domain' );
?>

Correto

<?php
if ( $morning ) {
   _e( 'Good morning', 'my-domain' );
} else {
   _e( 'Good afternoon', 'my-domain' );
}
?>

2. Faça o escape da saída por segurança

Se uma string for renderizada imediatamente na saída, use funções de escape, como esc_html_ e esc_attr_, para proteger contra ataques XSS.

echo '<div>' . esc_html__( 'Back to homepage', 'my-domain' ) . '</div>';

3. Adicione comentários para os tradutores

Isso ajuda os tradutores a entender o contexto em que os textos ou variáveis aparecem.

/* translators: %1$s is status label (e.g. "active" and  %2$s is quantity of bits/s (e.g. 12 Gbit/s) */

printf(
esc_html__( 'State of your network is %1$s. Maximum download speed is %2$s.', 'my-plugin-domain' ),
$state, $speed
);

Recursos adicionais

Para saber mais sobre o gettext, consulte o Codex do WordPress oficial.

Escrito por Amir · Última atualização em 21 de fevereiro de 2025