499 | La forma profesional de cambiar textos y traducciones en WordPress
22 Oct 2025 · 14 min
Episodio 499 del podcast WordPress Semanal por Gonzalo Navarro que explica cómo cambiar cadenas y traducciones en WordPress sin perder los cambios en actualizaciones. Cubre tres enfoques principales: usar plugins desde el panel (Loco Translate para cambios extensos y Say What para cambios puntuales), hacerlo por código con filtros gettext en functions.php, o editar los archivos PO/MO con herramientas como Poedit. Incluye buenas prácticas sobre dónde guardar las traducciones (tema hijo, carpeta languages de WP) y cuándo elegir cada método.
Questions this episode answers
499
Loco Translate y Say What
PO y MO
Usar filtros gettext (getText/getText with context) en functions.php
Poedit
Chapters
En el episodio 499 de WordPress semanal te cuento cómo modificar cadenas y traducciones en WordPress de forma correcta sin perder los cambios al actualizar. Te hablaré de distintas opciones, desde usar plugins hasta hacerlo por código y cuándo conviene cada una para mantener tu web totalmente en un mismo idioma. Vamos allá. Hola, hola, soy Gonzalo Navarro y Bienvenidos al episodio 499 de WordPress Semanal, el podcast en el que aprendes a crear y gestionar tus propias webs con WordPress en profundidad. No sé si se nota mucho, pero tengo la voz un poquito al límite porque acaba de ser la feria de mi pueblo y si quieres que te escuchen por encima de la música, pues hay que forzar un poquito la voz. A ver si para el episodio 500, que ya es el próximo, se dice pronto. Pues estoy al 100%, que seguro que sí. Venga, vamos a hablar hoy de la forma más profesional que hay. Hay distintos enfoques, que los vamos a cubrir, de cambiar textos y traducciones en WordPress. Hacía años que no hablaba de esto en el podcast. Me parece que la primera vez que hablé de ello, y prácticamente la única en un episodio, digamos dedicado, fue en el episodio 40 y pico, o sea hace más de 400. Y lo que conté ahí seguía vigente, lo que pasa que solo te hablaba de una solución muy concreta. Hoy te voy a dar más opciones, más casos, plugins nuevos que han salido desde entonces, así que quédate porque te va a gustar. Pero antes, como siempre, novedades. ¿Qué está pasando en Gonzalo Navarro es esta semana? Pues tenemos nuevo vídeo de la Zona Código y en el te enseño a forzar el cambio de contraseña de los usuarios de tu WordPress cada X días. Tú decides cada cuánto quieres hacerlo e incluso decides si quieres que pase para ciertos roles o no. ¿Por qué querrías hacer esto? Bueno, hay ciertas webs, sobre todo intranet, o webs donde hay equipos de trabajo, o incluso webs donde tienes alumnos, mucha gente, y quieres mantener un mínimo de seguridad por forzar un poquito a que esos usuarios tengan unas buenas prácticas, que es esto de ir cambiando las contraseñas cada cierto tiempo. Entonces, el método que te explico en este vídeo es como un método suave, ya digo, tú defines, venga, cada 90 días que cambien la contraseña todos menos los administradores por ejemplo, o todos menos los que tú quieras, puedes poner los roles que quieras que se salten esta obligatoriedad. Y entonces lo que ocurre es que se detecta el día del cambio de contraseña o que se introduce la contraseña por primera vez y se empieza a contar desde ese día para ese usuario. Cuando pasan esos días y el usuario intenta iniciar sesión, se le redirige o a una página que tú pongas personalizada, que puede ser si usas algún plugin de registro y login, pues siempre tiene una parte para cambiar los datos, o si usas WooCommerce, pues hay una parte en Mi cuenta o en el perfil para cambiar los datos, entonces tú puedes definir esa página en la parte frontal si quieres y si no, lo que va a hacer es llevarle en la parte de administración a la parte de perfil para que cambie su contraseña. Entonces te redirige y si el usuario no la cambia, la próxima vez que inicie sesión le va a redirigir otra vez. Entonces como es un modo un poco suave simplemente para estar ahí molestándole entre comillas hasta que decida cambiarla, ya digo en el vídeo de la zona código que si quieres que saque un plugin personalizado con su panel de gestión donde puedas poner un aviso y configurar más cosas, pues me lo comentas, me escribes desde la parte de sugerencias o desde donde quieras del canal de Telegram y lo publico porque ya tengo la base del código, solo me quedaría modificarlo un poco para añadirle algunas características y la parte de configuración. Ya sabes que voy publicando estos plugins personalizados en la sección de recursos. Esto en cuanto a las novedades, recuerda que tienes todo el esquema del episodio y los enlaces en Gonzalo Navarro, es 499 que es el número de este episodio, y ahí te dejo como digo también el plugin de la semana que se llama saywatch y lo digo así porque va con interrogación y es un poco el enfoque que buscaron seguro con ese nombre. Y este plugin te permite modificar cualquier cadena de texto de tu eco en WordPress. Fíjate que viene muy al hilo del episodio de hoy sin tener que tocar código ni editar archivos de traducciones. No voy a contarte mucho más porque te voy a explicar su uso un poquito más adelante de este episodio porque para mí tiene un caso de uso súper concreto, ya digo, lo vamos a ver a continuación. Venga pues vámonos con el tema central del episodio, la forma profesional de cambiar textos y traducciones en WordPress. Y primero vamos a ver por qué. Hay veces que aparecen textos sin traducir en nuestras webs. Es decir, utilizamos un plugin por ejemplo, que aparentemente tiene todo en español, pero de repente hay un texto por ahí que está en inglés o en nuestro theme, que eso parece que sí que está en español. Nuestra configuración en WordPress está en español, le hemos dicho en la configuración de ese theme o de ese plugin también que esté en español. Y luego hay algo por ahí que no. A ver, muchos plugins y temas incluyen su propio archivo de traducción. En WordPress esto se hace con dos archivitos, uno es el archivo PO y el otro es el mo. Es decir, PO y mo. Estos son sus terminales digamos. ¿Qué es lo que ocurre? Que puede ser que el desarrollador no haya traducido todo, entonces algunas partes van a estar en inglés o con frases que quedan poco naturales, que están mal traducidas o que a ti no te gustan. Pueden estar bien traducidas desde el punto de vista técnico, pero no expresan lo que tú querrías que expresaran. Y luego también hay veces que algunos textos están generados directamente por código y no desde esos archivos, entonces puede que tampoco cuadren con lo que tú quieres. Esencialmente, para tampoco liarnos mucho con la parte técnica, WordPress viene preparado para ser traducido y los desarrolladores de plugin y themes deberían también preparar sus plugins y sus themes para que lo sean. De hecho, muchas veces una de las formas en la que tú puedes aportar a un plugin o un theme sin tener conocimientos técnicos ni nada es ayudando en las traducciones. Hay una sección en WordPress. Org y tú puedes ir traduciendo plugins y demás, que de hecho hoy en día con la inteligencia artificial pues cada vez es más fácil hacer todo esto. Pero bueno, independientemente de esto, cuando tú estás utilizando una web como implementador para tus proyectos, los de tus clientes o lo que quieras y quieres modificar estos textos, que por cierto te habrás dado cuenta ya, pero no estamos hablando de crear una web multi idioma, no estamos hablando de que una web sea accesible desde la parte frontal en idiomas diferentes. Estamos hablando de textos que se generan por tus plugins y por tus teams y que los quieres modificar. Por ejemplo, tienes un plugin de venta y tiene una sección donde puede ir el usuario en su perfil y donde puede ver su historial de pagos Y eso de historial de pagos está en inglés, pone Payment History o pone cualquier cosa y no puedes, tú editas esa página y no te sale la opción de modificar lo normal ¿Por qué? Porque viene desde el código. Entonces, ¿Qué métodos podemos seguir para modificar esto? Bueno, tenemos el método sencillo que es con un plugin aquí el más popular es Loco Translate y yo diría que es la opción más sencilla para la mayoría de usuarios y es una interfaz que te permite buscar cadenas, es decir, líneas de texto dentro de cualquier plugin o tema y modificarlas ahí directamente. De esto tienes un vídeo completo en el curso de WordPress Intermedio donde te explico cómo usar este plugin de principio a fin y además te doy las claves para que esas traducciones se guarden y es marcar el ajuste de que se guarden de forma personalizada para que cuando se actualicen los plugins WordPress y demás no pierdas esos cambios que has hecho. Y ya digo, el funcionamiento es muy sencillo, te vas, imagínate que en mi caso, pues lo que quería, esto que te digo de Payment History lo quiero modificar y que el plugin es WooCommerce o IDD o Restrict Content Pro pues busco ese plugin porque me aparecen ahí todos los plugins instalados en ese WordPress y cuando estoy ahí busco el texto que quiero cambiar, pongo Payment History y ya me saldrá y pongo el texto que quiera en español. Puedo hacer una traducción literal, historial de pagos o puedo cambiarlo, puedo poner tus pagos, por ejemplo, lo que tú quieras. En esta línea hay otro plugin que es el que te he comentado en la sección del plugin de la semana que se llama Say What y que este es muy útil cuando quieres cambiar un par de cosas. Yo Loco Translate lo haría si quieres modificar muchas cosas, por ejemplo un plugin que está 100 % en inglés o un plugin que está traducido al español pero que tú quieres cambiarle el contexto de todo y quieres hacer grandes modificaciones porque es muy rápido, buscas súper fácil y haces varios cambios a la vez. Sin embargo, Say What es un poco más manual, es bastante más manual de hecho necesitas saber el dominio del plugin o tema, que esto es como una palabra clave o un nombrecito que se usa para localizar las cadenas de texto traducibles, esto lo vas a ver rápido en cada plugin o tema a poco que investigues un poquito el código. En Restrict Content Pro por ejemplo es RCP, se encuentra de forma relativamente sencilla, luego también tienes que poner el texto original que quieres traducir y la nueva cadena que quieres mostrar, es decir, el texto nuevo que quieres mostrar, pero ya digo lo escribes tú todo, no es que tengas un panel de búsqueda donde puedas ir navegando entre los distintos plugins y demás, sino que tú tienes que ponerlo y esto ya digo es útil si quieres simplemente hacer un par de modificaciones o si con loco translate que a veces pasa, no se encuentra exactamente lo que quieres modificar, entonces a mí me ha pasado varias veces esto y con saywatt sí que se encuentra, es un proceso más manual pero muy útil para estos casos. Venga, esto es una opción, hacer estas modificaciones de cadenas por el panel de administración de nuestra web con un plugin. Después tenemos la opción de hacerlo por código con filtros, esto para mí sería muy parecido a hacerlo con Save Watch pero con código y es aprovechar el filtro de getText o bueno getText with context, esto es una variante y ahí te permite a través de código PHP reemplazar cualquier texto pegándolo en el functions PHP de tu web. Esto si quieres cambiar un par de cositas, unas pocas cadenas muy concretas puede estar bien, si no se hace un poco ingobernable porque necesitarías muchas líneas de código para cambiar todo, pero si quieres cambiar un par de cosillas lo puedes hacer así. Esto pues hoy en día con chat GPT o cualquier chat de IA tú le dices estoy utilizando WooCommerce, quiero cambiar una cadena de texto, prepárame el filtro de PHP para hacerlo y lo tienes, si queréis que lo hagamos así me lo decís y saco un vídeo de la zona código explicando un poquito el proceso. Y la tercera variante que es digamos la clásica, es editar los archivos PO y MO manualmente, aquí puedes utilizar una herramienta como poedit que es la más popular, es gratuita, te la descargas a tu ordenador y editas los archivos del idioma, es un poquito más técnico pero no mucho, porque digamos la interfaz de este programa es muy sencilla, lo que pasa que si tienes que saber dónde poner estos archivos después que es básicamente depende o en la parte de idiomas, la carpeta languages del plugin, lo que pasa que aquí corres el riesgo de que cuando se actualice pierdas los cambios, o en la carpeta languages de WordPress, de WP content, que esta va a tener prioridad si se detecta que hay un archivo relacionado con ese plugin, un archivo de traducción me refiero, va a tener prioridad con respecto a la carpeta de idiomas del propio plugin y además no lo pierdes cuando se actualiza. Entonces, ¿Cuándo conviene utilizar cada método de estos tres que hemos hablado? Los plugins como LocoTranslate y Saywatt son enfocados a usuarios o implementadores que quieren rapidez o incluso a perfiles desarrolladores que también quieren rapidez y quieren hacerlo con una interfaz más sencilla o dejárselo preparado para que el usuario final de esa web también pueda acceder y modificar esas cadenas. La parte de hacer los filtros PHP es para desarrolladores o si quieres integrar las traducciones en un mini plugin personalizado por ejemplo, y los archivos poimo es para proyectos grandes o cuando tienes que gestionar varios idiomas, pues quizás sería la mejor opción, la más pura digamos. Bien, ahora independientemente del método que vayas a utilizar, te voy a contar algunas buenas prácticas para asegurarte, como decíamos al principio, de que estas traducciones no se pierdan y de que tampoco se te vaya todo un poquito de madre. Entonces primero, nunca edites las traducciones dentro del plugin o del tema original, básicamente porque las vas a perder, te van a aguantar hasta la siguiente actualización porque esos archivos se sobrescriben si usas algún plugin que te facilita todo, guarda los cambios de forma personalizada, si es un tema hijo puedes también guardar ahí las traducciones personalizadas. Ya sabes que los temas hijos lo que haces es replicar la estructura, las carpetas que hay en el padre y si existe la misma en el hijo, se va a tirar de la del hijo en lugar de la del padre, con lo cual aunque el tema del padre se actualice, lo que tú pongas en tu tema hijo se va a mantener tal cual y va a tener prioridad sobre el padre. Y si en algún momento tienes alguna duda de si lo has guardado bien o lo que sea, lo vas a ver rápido. Revisas después de una actualización, por ejemplo, si has cambiado algo del plugin Restrict Content Pro lo has modificado con loco translate y no estás seguro si lo has guardado en la ruta correcta. Ya digo, esto lo explico bien en el vídeo de la clase 8 del curso de WordPress Intermedio, pero lo vas a comprobar de forma relativamente rápida después de la actualización. Bueno, al final modificar estas cadenas no es sólo una cuestión estética, sino que también te puede ayudar a mejorar la experiencia de usuario y a transmitir profesionalidad, porque si tienes una web que está enfocada a público español y de repente se van encontrando por ahí ciertas partes que están en inglés, pues no da muy buena imagen y hay formas súper sencillas. Ya digo, no tienes que tener un perfil muy técnico de hacer estas traducciones. Yo te recomiendo loco translate si quieres hacer muchos cambios y Saywat si quieres hacer un par de ellos. Si queréis que haga un vídeo de Say what, sobre todo para la parte de cómo encontrar el dominio específico de un plugin o un tema que es necesario para la traducción, me lo decís y no sabré muy bien dónde meterlo, pero bueno. Bueno, lo podemos poner la sección de recursos como una clase suelta y puede estar bien. Recuerda que te dejo los enlaces a todo en Gonzalo Navarro es 499, pero si te ha gustado algo, si no encuentras alguna cosa o si necesitas ayuda con formación o mis servicios, ve a GonzaloNavarro es, echa un vistazo a todo lo que hay y si hace falta pues me contactas. También lo tengo en el footer, abajo del todo de la web, tenéis un enlace que pone contacto y me podéis escribir cuando queráis. Nada más por este episodio, nos seguimos escuchando. Adiós.
More from Gonzalo
518 | Redes sociales, precios personalizados, audios desde Drive y temas de bloques (Q&A)
513 | Por qué sigo usando estos plugins después de tantos años (y cuáles he abandonado)