Diferencia entre __(), _e(), _x(), _ex y _n() en WordPress para traducir

Cuando estamos realizando la internacionalización (i18n) de un tema o un plugin de WordPress es necesario usar un cierto tipo de funciones nativas que nos permitirán realizar la traducción de las cadenas deseadas de un modo rápido y sencillo. No obstante, si ya estás aquí, eso lo sabes y lo que andas buscando es saber para qué se usa cada función específica. Así que sin más preámbulos veamos la diferencia entre __(), _e(), _x(), _n y _ex().

Función __()

Esta primera opción es la básica, la utilizaremos para envolver una cadena de texto normal que queramos traducir. Pasaremos dos argumento en su interior: la cadena de texto en cuestión y el texto de dominio, es decir, el identificador que usa el tema o plugin de WordPress a traducir.

__( 'Una cadena a traducir dentro de ', 'texto-dominio' );

Función _e()

Ahora imaginemos que la cadena que queremos traducir se encuentra dentro de un echo. En ese caso usaremos esta otra opción, que al igual que la anterior se vale de dos parámetros.

_e( 'Una cadena a traducir', 'texto-dominio' );

Función _x()

Sin embargo, al usar las funciones anteriores, podemos toparnos con un problema y es que a veces una misma palabra o frase, dependiendo del contexto, se puede traducir de forma diferente dentro de un mismo idioma. Cuando suceda esto, podemos usar _x(), que nos ayudará a hacer una desambiguación. En este caso nos valdremos de tres argumentos: la cadena de texto, el contexto de la misma y el texto de dominio.

_x( 'Cadena', 'contexto', 'texto-dominio' );

Función _ex()

Cuando sea necesario que la traducción se muestre con un echo, nos valdremos de esta otra opción, de un modo similar a como ya hemos visto.

_ex( 'Cadena', 'contexto', 'texto-dominio' );

Función _n()

Otra situación en la que nos encontraremos seguro es que dentro de una misma cadena necesitemos contar con su versión en singular y plural, para usar una u otra dependiendo de la situación. Para ello WordPress nos ofrece _n(), al cuál podremos pasar cuatro argumentos: cadena en singular, en plural, el número de los dos objetos que queremos que nos devuelva y el texto de dominio.

_n( 'Singular', 'Plural', 'numero-objeto', 'texto-dominio' );

Si deseas conocer un poco más sobre estas funciones y otras que podemos usar para llevar a cabo la traducción de un plugin o un tema, puedes consultar la documentación técnica de WordPress sobre la internacionalización.


Referencias:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *