WPML

Aprenda a usar las funciones de gettext para que los textos de los temas y plugins se puedan traducir en WPML.

Para asegurarse de que los textos de los temas y plugins se puedan traducir y aparezcan correctamente en su sitio, debe cumplir dos condiciones:

  • Envuelva los textos en una función gettext
  • Incluya un argumento de dominio de texto

Conceptos básicos de Gettext

Considere la siguiente cadena, “Thank you!”, que pertenece al dominio “my-plugin-domain”:

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

Para mostrar la cadena en el navegador, use la función _e():

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

Al usar HTML, envuélvala entre etiquetas HTML:

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

Si tiene un enlace separado del texto circundante, use la función esc_html_e():

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

Mejores prácticas de Gettext

1. Nunca envuelva una variable o constante en una función de gettext

Esto hará que las cadenas no se puedan escanear y, por lo tanto, no se puedan traducir.

Incorrecto

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

Correcto

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

2. Escape la salida por seguridad

Si una cadena se renderiza inmediatamente en la salida, use funciones de escape, como esc_html_ y esc_attr_, para protegerse contra ataques XSS.

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

3. Añada comentarios para los traductores

Esto ayuda a los traductores a comprender el contexto en el que aparecen los textos o las variables.

/* 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 adicionales

Para obtener más información sobre gettext, consulte el codex de WordPress oficial.

Escrito por Amir · Última actualización 21 de febrero de 2025