• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Cambiar textos de traducción en WordPress

Cambiar textos de traducción en WordPress

Cambiar textos de traducción en WordPress

[ 22 enero 2019 ] [ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

mejoras

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

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:

Cambiar texto comentarios ejemplo comparación

 

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.

Loco Translate opción core WordPress

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

Usando Loco Translate para cambiar textos

 

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:

Puedes usar este código en el archivo functions.php de tu child-theme

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

Existen variaciones del filtro gettext, por ejemplo para la traducción con contexto usarías el filter hook gettext_with_context

 

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.

 
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Cambiar comillas en WordPressCambiar comillas («») en WordPress
  • Modificar el mensaje de notificación de comentarios en WordPressModificar el mensaje de notificación de comentarios en WordPress
  • Plugins dependientes en WordPressQué son los Plugins Dependientes en WordPress
  • mu-plugins en WordPressAprende a usar mu-plugins en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Charly

    22 enero, 2019

    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

    • Jhon Marreros Guzmán

      23 enero, 2019

      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/

  2. Alvar

    8 mayo, 2020

    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.

    • Jhon Marreros Guzmán

      9 mayo, 2020

      Hola, podrías usar if y elseif, por ejemplo:

          if ( $translated == "texto 1" ) {
              $translated = "texto cambiado 1";
          } elseif ( $translated == "texto 2" ) {
          	$translated = "texto cambiado 2";
          } elseif ( $translated == "texto 3" ) {
          	$translated = "texto cambiado 3";
          }
          return $translated;
      

      Saludos.

  3. Victor Pinto

    12 agosto, 2020

    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

    • Jhon Marreros Guzmán

      12 agosto, 2020

      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

  4. José Chacón

    13 octubre, 2020

    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 !!

    • Jhon Marreros Guzmán

      14 octubre, 2020

      Hola, dentro la función puedes poner varias condicionales y al final retornar el valor. Has intentado con Loco Translate?. Saludos.

  5. jorge

    21 noviembre, 2020

    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

    • Jhon Marreros Guzmán

      26 noviembre, 2020

      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.

  6. Carlos

    10 diciembre, 2020

    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.

    • Jhon Marreros Guzmán

      10 diciembre, 2020

      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.

  7. Lina

    30 junio, 2021

    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

    • Jhon Marreros Guzmán

      6 julio, 2021

      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/

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

¿Se puede evitar el efecto Lock-in en WordPress?

Cambiar comillas («») en WordPress

Optimizar la carga de imágenes con Lazy Load

Redireccionar las páginas de adjuntos en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados