En un artículo anterior vimos cómo internacionalizar un plugin, sin embargo muchas veces necesitamos hacer cambios a textos específicos sin generar un nuevo un archivo de traducción. En este artículo veremos dos maneras simples de cambiar los textos de traducción en WordPress.
Generalidades
Tomaremos como ejemplo el texto de traducción “Publicar comentario”, que es un texto del núcleo de WordPress, lo cambiaremos por “Enviar comentario”, obtendremos un resultado similar a lo que se muestra en la siguiente imagen:

1- Cambiar textos de traducción Usando un Plugin
Esta es la forma más simple, el plugin que usaremos será Loco Translate
Una vez instalado veremos que tiene diferentes opciones de menú para buscar textos de traducción, en nuestro caso, el texto de traducción corresponde al núcleo de WordPress.

Luego buscamos el texto que queremos traducir y realizamos la traducción tal como se muestra en la siguiente imagen:

2- Cambiar textos de traducción Usando código
Si quieres evitar el uso de un plugin adicional para cambiar algunos textos específicos, puedes hacerlo entonces a través de código, tal como se muestra a continuación:
add_filter( 'gettext', 'dcms_change_traduction_text', 10, 3 );
function dcms_change_traduction_text( $translated, $original, $domain ) {
if ( $translated == "Publicar comentario" ) {
$translated = "Enviar comentario";
}
return $translated;
}
En el código anterior:
- Usamos el filter hook gettext el cual hace referencia a la función dcms_change_traduction_text
- La función dcms_change_traduction_text tiene tres parámetros, el primero de ellos nos sirve para hacer la verificación de la cadena de texto a traducir
- Finalmente retornamos el valor del primer parámetro cambiado
- Tener en cuenta que también es posible trabajar con funciones de traducción como __() o _e() y usar el parámetro domain
Conclusión
El sistema de traducción de WordPress usa archivos .po y .mo para las traducciones de textos, afortunadamente podemos cambiar los textos que vienen por defecto, tal como hemos visto podemos hacerlo usando un plugin o a directamente a través de código.
Hola, tengo mi Wp todo en español incluso el theme esta bastante traducido, pero hay cosas como woocommers que me muestra en el carrito alguas cosas en ingles por ejemplo view cart y no encuentro donde está ese texto. como puedo encontrarlo? Gracias
Hola revisa cómo descargar los archivos de traducción de WooCommerce que ya tiene las traducciones para español, revisa: https://docs.woocommerce.com/document/woocommerce-localization/
Hola, cómo puedo cambiar varias cadenas de texto, y no una sola, en el ejemplo segundo indicas como cambiar un texto, pero no consigo cambiar varios. ¿Podrías indicarme un ejemplo de codigo para tres textos a cambiar?
Gracias de antemano.
Hola, podrías usar if y elseif, por ejemplo:
Saludos.
Hola, gracias por el video es de gran ayuda, pero tengo un problemilla, solo me deja cambiar una frase, me gustaría poder cambiar varias frases. En el comentario anterior dejas un código para varias pero no funciona correctamente. Sería posible que subierás un código para cambiar varias frases?
Gracias de antemano, Un saludo
Hola
El código si que debería funcionarte, puedes cambiar la sintaxis separando los if, pero al final será la misma lógica. Revisa: https://www.php.net/manual/es/control-structures.elseif.php
Estimado John:
Con este fragmento he logrado cambiar el texto de un botón:
add_filter(‘gettext’, ‘translate_text’);
add_filter(‘ngettext’, ‘translate_text’);
function translate_text($translated) {
$translated = str_ireplace(‘FINALIZAR COMPRA’, ‘FINALIZAR CARGA’, $translated);
return $translated;
}
pero cuando agrego el mismo fragmento para el texto de otro botón no cambia nada.¿Por que será? En otras palabras WordPress me acepta solo un cambio del texto para un solo botón.. También intenté con el fragmento para varios cambios de texto y tampoco funcionó. Agradezco tu asistencia. Gracias !!
Hola, dentro la función puedes poner varias condicionales y al final retornar el valor. Has intentado con Loco Translate?. Saludos.
Hola amigo agradecido por tus tutoriales, quiero saber como se haria esta traduccion por codigo si necesito cambiar la frase de español a una frase en ingles, lo que sucede es que el plugin no tiene pot de idioma, que campo faltaria para indicar que cambie la frase a ingles
Hola
Algo que puedes evaluar es crear los archivos de idioma para tu plugin, lo puedes hacer igualmente con Loco Translate o con una aplicación como Poedit. Sin embargo si quieres cambiarlo directamente en el código, puedes abrir la carpeta de tu plugin con algún editor de código y buscar en todos los archivos de la carpeta el texto que quieres cambiar, lo ubicas y lo cambias.
Buenos días,
He probado tu código y funciona bien para las labels, pero los textos de las etiquetas a no me los cambies, alguna idea?? Gracias de antemano.
Hola, has probado hacerlo por código?, tal como se comenta en: https://decodecms.com/cambiar-textos-de-traduccion-en-wordpress/#Cambiar_textos_de_traducci%C3%B3n_Usando_c%C3%B3digo , si es así, posiblemente no sea la descripción exacta, tendría que buscar en los archivos de tu sitio y ver el texto en inglés que se pasa a la función de traducción.
Hola Jhon,
Mil gracias por tus aportes. Quería preguntarte si hay alguna forma de cambiar lo que está escrito en un botón?
Ya usé el otro código para cambiar un par de letras pero cuando intento en un botón, no funciona.
Mil gracias
Hola, has probado con Loco Translate, es posible que igual el texto de botón se encuentre en un “contexto”, o es posible también que el programador no haya usado funciones de traducción para el texto del botón. Con respecto a la traducción del contexto revisa este artículo relacionado: https://decodecms.com/cambiar-comillas-en-wordpress/